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

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

我知道我能做到

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

但我需要能够做到这一点

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

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

【问题讨论】:

    标签: arrays reactjs setstate


    【解决方案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
           }
        }
    }));
    

    【讨论】:

      猜你喜欢
      • 2019-07-24
      • 2016-05-12
      • 1970-01-01
      • 1970-01-01
      • 2017-02-25
      • 2021-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多