ReactJS setState 多维数组变量键在子数组中

Posted

技术标签:

【中文标题】ReactJS setState 多维数组变量键在子数组中【英文标题】:ReactJS setState multidimensional array variable keys in sub array 【发布时间】:2019-07-23 10:34:23 【问题描述】:

我有一个组件数组,每个组件都有组件详细信息,我正在尝试更新组件的详细信息。

我知道我能做到

this.setState(
    component: 
       ...this.state.component,
       [var]: value
    
);

但我需要能够做到这一点

this.setState(
    component[key]: 
       ...this.state.component[key],
       [key2]: value
    
);

失败了。如何在不修改状态和替换整个内容的情况下修改子数组?

【问题讨论】:

【参考方案1】:

您还需要更新组件状态中的嵌套数据

this.setState(
    component: 
       ...this.state.component,
       [key]: 
          ...this.state.component[key],
          [key2]: value
       
    
);

但是当你根据之前的状态更新状态时,最好使用回调方法来更新状态

this.setState(prevState: (
    component: 
       ...prevState.component,
       [key]: 
          ...prevState.component[key],
          [key2]: value
       
    
));

【讨论】:

以上是关于ReactJS setState 多维数组变量键在子数组中的主要内容,如果未能解决你的问题,请参考以下文章

ReactJS - setState Axios POST 响应

使用 ReactJS 显示多维数组

通过键在php中重构多维json

多维数组中的Cant调用键(ReactJS)

ReactJS Array.push 函数在 setState 中不起作用

键在 ReactJs 的子组件中不能作为道具使用