javascript - 在 ReactJS 上对状态对象使用 setState

标签 javascript reactjs state

我正在使用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/

相关文章:

javascript - Jasmine 不注入(inject)服务

javascript - 如何让 iframe 从父页面使用 css 和 javascript?

reactjs - WithStyles 在 React 的 Material UI 中不起作用

Android 在应用程序被杀死后强制完全重启

android - 如何监听状态属性变化 Flutter bloc 模式

javascript - 多个 SetTimeout 一起执行

javascript - 如何将 HTML 页面添加到 React 应用程序

javascript - 在不删除数据的情况下过滤 React 中的状态

flutter - 使用提供程序包 FLUTTER 在应用程序关闭后保存状态

javascript - 在 SPA 中下载文件