gpt4 book ai didi

reactjs - react : How to clear file input and data input fields after submitting form?

转载 作者:行者123 更新时间:2023-12-04 00:57:44 24 4
gpt4 key购买 nike

提交包含数据字段和文件字段的表单后,仅清除数据字段,但保留上传的文件字段。见图片:Here

OnChange 函数

    onChange = (e) => {
if(e.target.name === 'audio') {
this.setState({
[e.target.name]: e.target.files[0], loaded: 0,
}, () => console.log(this.state.audio))

} else {

this.setState({
[e.target.name]: e.target.value
}, () => console.log(this.state))
}
}

提交函数

onSubmit = e => {
e.preventDefault();
let { title, content, audio} = this.state;
//const story = { title, content, audio};
let formDataStory = new FormData();
formDataStory.append('audio', audio);
formDataStory.append('title', title);
formDataStory.append('content', content);
this.props.addStory(formDataStory);
this.setState({
title: "",
content:"",
audio: ""
});
};


表格
  render() {
const {title, content, audio} = this.state;
return (
<div className="card card-body mt-4 mb-4">
<h2>Add Story</h2>
<form onSubmit={this.onSubmit}>

<div className="form-group">
<label>Title</label>
<input
className="form-control"
type="text"
name="title"
onChange={this.onChange}
value={title}
/>
</div>
<div className="form-group">
<label>Content</label>
<input
className="form-control"
type="text"
name="content"
onChange={this.onChange}
value={content}
/>
</div>

<div className="form-group">
<label>Audio</label>
<input
className="form-control"
type="file"
name="audio"
onChange={this.onChange}
//value={audio}
/>
</div>

<div className="form-group">
<button type="submit" className="btn btn-primary">
Submit
</button>
</div>
</form>
</div>
);
}
}


提交表单后,如何将文件上传字段与其他数据字段一起重置?

非常感谢!

最佳答案

file输入是 always uncontrolled你需要使用 dom ref 并手动清除该值。

这是执行此操作的示例功能组件:

function ExampleFileInput() {
const ref = React.useRef();
function handleClick() {
ref.current.value = ""
}
return (
<div className="App">
<input type="file" ref={ref}/><br />
<button type="button" onClick={handleClick}>Clear file</button>
</div>
);
}

要在类组件中使用,请参阅 the docs .您可以在 this question 中了解更多清除文件输入的方法。 .

关于reactjs - react : How to clear file input and data input fields after submitting form?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60986168/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com