如何使用嵌套对象更新状态反应JS

时间:2018-05-24 22:36:53

标签: reactjs

我有一个状态,里面有一个嵌套对象。如果我更新一个值,另一个值正在覆盖,我想保留上一个值和新值。

这是我试过的:

默认阶段:

state = {
 custom: {
  data: null,
  categories: null
 },
 index: 0
}

更新阶段:

this.setState({ ...this.state.custom, custom: { data: data } });
this.setState({ ...this.state.custom, custom: { categories: categories } });
this.setState({ ...this.state.custom, index: index });

所以发生的事情是值被覆盖状态更新的最后一个值。

预期产出:

state = {
 custom: {
  data: new updated value,
  categories: new updated value
 },
 index: new updated value
}

1 个答案:

答案 0 :(得分:0)

试试这个

this.setState({ custom: { ...this.state.custom, data: data, categories:categories }, index: index });