【发布时间】:2020-06-22 08:58:30
【问题描述】:
我正在学习 React 中的表单,我遇到了以下代码,其中单个 setState 方法用于多个输入以更新用户提供的值。谁能解释一下传播运算符在这里做什么,它在 setState 方法中包含什么?
class FormContainer extends Component {
constructor () {
this.state = {
formControls: {
email: {
value: ''
},
name: {
value: ''
},
password: {
value: ''
}
}
}
}
changeHandler = event => {
const name = event.target.name;
const value = event.target.value;
this.setState({
formControls: {
...this.state.formControls,
[name]: {
...this.state.formControls[name],
value
}
}
});
}
render() {
return (
<form>
<input type="email"
name="email"
value={this.state.formControls.email.value}
onChange={this.changeHandler}
/>
<input type="text"
name="name"
value={this.state.formControls.name.value}
onChange={this.changeHandler}
/>
<input type="password"
name="password"
value={this.state.formControls.password.value}
onChange={this.changeHandler}
/>
</form>
);
}
}
export default FormContainer;**
来源:https://medium.com/@agoiabeladeyemi/the-complete-guide-to-forms-in-react-d2ba93f32825
【问题讨论】:
-
如果您想保留其他字段/输入的当前值...用于创建新状态对象 - 需要检测更新,决定是否需要重新渲染
标签: reactjs