【发布时间】:2019-05-10 21:08:48
【问题描述】:
我有一个带有输入字段的表单。提交表单后需要清除输入字段。我试图将状态设置为空数组 - 它没有工作,然后我尝试使用 refs - 对我也不起作用......
此函数激活 onSubmit 事件。
addHaspInfo = (e) => {
// e.preventDefault();
axios.post("/hasp", {
company: {
name: e.target[3].value,
city: e.target[4].value,
phone: e.target[5].value
},
numberOfKeys: e.target[2].value,
serial: e.target[0].value,
soft: e.target[1].value,
})
.then((res) => {
console.log(res);
})
.catch((err) => {
console.log(err);
})
axios.get("/hasp")
.then((haspData) => {
console.log(haspData.data);
this.setState({
hasps: haspData.data
});
});
this.setState({
hasps: [] //this don't reset input fields
});
}
<form id="formId" className="form-group haspAddForm" onSubmit={this.addHaspInfo}>
蚂蚁这也不起作用:
clearInput = () => {
this.setState({hasps: []});
ReactDOM.findDOMNode(this.refs.myInput).focus(); //this don't reset input fields
}
<button onClick={this.clearInput} className="btn btn-primary" type="submit" style={{marginBottom:'40px', marginRight: '110px'}}>Add new hasp info</button>
输入字段之一
<input ref="myInput" type="text" className="form-control" value={this.state.serial} placeholder="00000-00000" required /><br />
【问题讨论】:
-
您是否期望
this.setState({hasps: []});将清除状态并仅插入hasps: []?因为实际上.setState补丁状态不会取代它 -
React 对我来说是新的,所以我不明白所有的细微差别)