[英]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.