javascript - 如何在 React 中设置嵌套数组的状态(已编辑)
问题描述
我有这组数据
this.state = {
weeks: [
{
weekNumber: 1,
weights: []
},
{
weekNumber: 2,
weights: []
}
]
}
我想要做的是创建一个新数组并将其设置为“权重”。我已经检查过类似这样的其他帖子: 设置嵌套数组的状态
我假设我做了类似的事情。
编辑:另外,比如说我想更新每个星期的权重数组,我该怎么做呢?
解决方案
我通常使用这个解决方案:
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] };
推荐阅读
- tableau-api - 如何在mac上选择数据源中的多列?在 mac 上的画面中
- python-3.x - 运行 Python 爬虫时出现“TypeError:字符串索引必须是整数”
- c - 为什么 fun 函数的返回值是 8 而不是 7?
- r - 通过修改 R 中的现有列表来创建新列表
- java - 如何使用流 lambda 将包含其 Collection 成员的对象列表映射到具有 Set 作为成员的另一个对象?
- python - Matplotlib Legend 显示错误的图例名称
- c++ - 将列表迭代器存储为成员
- spring - 创建spring boot gradle mutli项目
- javascript - AJAX GET 命令以获取灯的状态
- python - 逐行构造pyarrow表的最快方法