arrays - ReactJS setState 多维数组变量键在子数组中
问题描述
我有一组组件,每个组件都有组件详细信息,我正在尝试更新组件的详细信息。
我知道我能做到
this.setState({
component: {
...this.state.component,
[var]: value
}
});
但我需要能够做到这一点
this.setState({
component[key]: {
...this.state.component[key],
[key2]: value
}
});
失败了。如何在不修改状态和替换整个内容的情况下修改子数组?
解决方案
您还需要更新组件状态中的嵌套数据
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
}
}
}));
推荐阅读
- typescript - 打字稿:定义类型,它为每个键保存另一种类型的功能
- github-actions - 通过私有 GH 存储库 / docker 存储库分发 GH 操作
- qgis - 在 QGIS 中为多面图层创建属性,该属性由来自点图层的相应属性值的总和组成
- mysql - 如何在颤动中刷新父页面
- jenkins - 隐藏详细的詹金斯控制台输出
- azure-api-management - Azure API 管理和保护后端 Web API
- julia - 包含向量的复合类型对象的等式测试无法按预期工作。如何比较它们?
- python - Jupyter 笔记本出现故障
- python - ANSIBLE:使用多个变量循环复杂的字典
- vaadin - Vaadin:将值设置为“来自服务器”的 TextField 不会触发 CustomField::generateModelValue