微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在输入文件标签ReactJS中重新分配保存的文件

如何解决如何在输入文件标签ReactJS中重新分配保存的文件

在我的react组件中,我有这种类型的代码

state = {
    title: '',file: ''
}

handleTextChange = (e) => {
    this.setState({
        [e.target.id] : e.target.value
    })
}

handleFileChange = (e) => {
    this.setState({
        [e.target.id] : e.target.files[0]
    })
}

render(){
    return(
        <input type="text" id="title" defaultValue={title} onBlur={this.handleTextChange}/>
        <input type="file" id="file" onChange={this.handleFileChange}/>
    )
}

现在的问题是,当我更改文本时,所选文件自动取消选择,而我必须再次选择它。每次更改文本框中的文本时,我都必须这样做。

如何像在文本框中一样在文件中设置认值,因此每次不必选择相同的文件

解决方法

您必须在这里关注不变性。您的状态是一个对象。因此,每次设置状态时,您都只能更改,仅更改属性。

state = {
    title: '',file: ''
}

handleTextChange = (e) => {
    this.setState({
        ...state,[e.target.id] : e.target.value
    })
}

handleFileChange = (e) => {
    this.setState({
        ...state,[e.target.id] : e.target.files[0]
    })
}

render(){
    return(
        <input type="text" id="title" defaultValue={title} onBlur={this.handleTextChange}/>
        <input type="file" id="file" onChange={this.handleFileChange}/>
    )
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。