首页 > 解决方案 > 如何在 React 中设置嵌套数组的状态(已编辑)

问题描述

我有这组数据

this.state = { weeks: [ { weekNumber: 1, weights: [] }, { weekNumber: 2, weights: [] } ] }

我想要做的是创建一个新数组并将其设置为“权重”。我已经检查过类似这样的其他帖子: 设置嵌套数组的状态

我假设我做了类似的事情。

编辑:另外,比如说我想更新每个星期的权重数组,我该怎么做呢?

标签: javascriptarraysreactjs

解决方案


我通常使用这个解决方案:

const newWeeks = [ ...this.state.weeks ];
newWeeks[0] = { ...newWeeks[0] };
//modify `newWeeks`

this.setState({
  weeks: newWeeks
});

更新 1: 实时版本:https ://codesandbox.io/s/20v7r2zx0j?fontsize=14&module=%2Fsrc%2FTest.js


更新 2:感谢@bird。问题是,在复制数组(或对象)时, Spread只会深入一层,因此我们需要额外的步骤:

newWeeks[0] = { ...newWeeks[0] };

推荐阅读