【发布时间】:2017-04-27 12:00:45
【问题描述】:
所以我有以下对象结构:
const SamplePalette = {
id: 1,
name: "Sample Palette",
description: "this is a short description",
swatches: [
{
val: "#FF6245",
tints: ["#FFE0DB", "#FFA797"],
shades: ["#751408", "#C33F27"]
},
{
val: "#FFFDA4",
tints: ["#FFFFE1"],
shades: ["#CCCB83"]
},
{
val: "#BFE8A3",
tints: ["#E7FFD7"],
shades: ["#95B77E"]
}
]
}
假设这个对象由我的应用程序的状态管理,如下所示:
this.state = {
currentPalette: SamplePalette,
}
我的问题是如何更新swatches 数组中给定样本对象的val 属性?或者更一般地说 - 我如何只更新这个对象的一部分?
我尝试使用 update 帮助器以及弄清楚 Object.assign() 的工作原理,但是我没有成功,坦率地说,仅通过查看示例无法真正掌握语法。
另外,由于我要大量修改这个对象,我应该考虑使用 Redux 吗?
[编辑]
我尝试了@maxim.sh 的建议,但没有成功:
this.setState(
{ currentPalette: {...this.state.currentPalette,
swatches[0].val: newValue}
})
【问题讨论】:
标签: javascript reactjs state