我正在使用ReactJS,我需要更改值的状态,但 value 属性的状态如下:
this.state = {
form:{
name:{
value:''
}
}
}
我在表单上以不同的方式尝试了它,例如:
<TextInput
name='form.name.value'
value={this.state.form.name.value}
onChange={value => this.onChange('name', value)}
/>
onChange = (e) => {
this.setState({ [e.target.name]: e.target.value})
}
但永远不会改变状态值。
我该怎么做?谢谢!!!!!!
最佳答案
您使用输入字段名称的方式不正确。在 setState
中,它被视为字符串而不是 object.key
。
onChange= (e) => {
let inputName = e.target.name;
let inputValue = e.target.value;
let updatedFormState = Object.assign({}, this.state);
updatedFormState.form[inputName].value = inputValue;
this.setState(updatedFormState);
}
关于javascript - 在 ReactJS 上对状态对象使用 setState,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51889528/