簡體   English   中英

如何在狀態中的對象內部的對象內部的數組中追加項目?

[英]How to append item in array inside object inside object in state?

我有這種狀態:

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

我想在key2內附加一個項目。

我嘗試了所有這些(這些都不起作用)

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

要么

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

要么

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

我該如何進行這項工作?

您可以使用:

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

或者,利用API輕松創建更新的對象,同時保持不變性。 例如immutability-helper

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM