Javascript 如何更新处于设置状态的对象数组

Javascript 如何更新处于设置状态的对象数组,javascript,arrays,reactjs,Javascript,Arrays,Reactjs,`正在尝试更新onClick中的对象数组。我有两种状态,即数组格式的“intialValue”和“todos”。当我签入react developer工具时,我可以看到有两种状态。任务的流程是用户可以在输入文本框中输入文本,一旦用户单击添加按钮,我希望它被添加为对象数组,我保留了一个布尔字段和Id字段。 我面临的问题是我能正确地得到“inputvalue”。我还得到了对象数组,但没有处于“todos”状态,并且值没有以数组格式更新,只有输入值被更改。例如:0{completed:false,id

`正在尝试更新onClick中的对象数组。我有两种状态,即数组格式的“intialValue”和“todos”。当我签入react developer工具时,我可以看到有两种状态。任务的流程是用户可以在输入文本框中输入文本,一旦用户单击添加按钮,我希望它被添加为对象数组,我保留了一个布尔字段和Id字段。 我面临的问题是我能正确地得到“inputvalue”。我还得到了对象数组,但没有处于“todos”状态,并且值没有以数组格式更新,只有输入值被更改。例如:0{completed:false,id:20,text:abc}当我单击“添加”按钮时,数组没有更新为1{completed:false,id:20,text:cde},而在第0个帖子本身中,值正在更新。我已经添加了下面的代码,任何人都可以帮助我实现输出。提前谢谢

`

类TodoForm扩展组件{
建造师(道具){
超级(道具);
此.state={
输入值:“”,
待办事项:[],
};
log(“intialvalue”,this.state.InputValue);
}
手变(e){
this.setState({InputValue:e.target.value});
}
handleSubmit(e){
//警报(“表单状态值”+this.state.initalValue);
e、 预防默认值();
这是我的国家([
…这个。州。待办事项,
{
text:this.state.InputValue,
已完成:错误,
id:Math.random()*1000,
},
]);
}
render(){
返回(
添加
{this.state.InputValue}

); } } 导出默认格式;
您必须更新待办事项状态(不完全是状态)。您没有正确更新状态。应该是这样的:

this.setState({
      todos: [
        ...this.state.todos,
        {
          text: this.state.InputValue,
          completed: false,
          id: Math.random() * 1000
        }
      ]
    });


以下是演示:

@Shubam Verma非常感谢,学习了如何更新多个设置状态:)感谢上面的链接。是的,但是上面链接的方法和我的略有不同。
this.setState({
      todos: [
        ...this.state.todos,
        {
          text: this.state.InputValue,
          completed: false,
          id: Math.random() * 1000
        }
      ]
    });