如何将对象中的对象追加到对象内部的对象中?

时间:2018-02-09 22:19:55

标签: javascript reactjs ecmascript-6

我有这种状态:

{
'guy1': {...},
'guy2':{...},
'guy3: {'key1': [...], 'key2': [...]}
}

我想在key2中添加一个项目。

我尝试了所有这些(这些都不起作用)

guy3: {...prevState.guy3, key2: prevState.guy3.key2.concat([item])}

OR

guy3: {...prevState.guy3, key2: [...prevState.guy3.key2, item]}

OR

let key2 = this.state.guy3.key2.slice();
key2.push(item);
this.setState(prevState => {
   guy3: {...prevState.guy3, key2}
};

我该如何做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以使用:

this.setState(prevState => ({
   ...prevState, 
   guy3: {
      ...prevState.guy3,
      key2: [...prevState.guy3.key2, item] 
   }
}));

或者,利用API轻松创建更新的对象,同时保持不变性。例如immutability-helper

this.setState(prevState => update(prevState, { guy3: { key2: {$push: item} } }));