我有简单的状态:
const state = {
title: "The title",
colorSet: {
multiple: true,
colors: [
'red',
'green',
'blue',
'yellow',
'gray',
'white',
],
selected: [
'green',
'yellow',
],
}
};
我们将仅将需要应用的更改传递给 setState()
函数。例如,如果我只需要更新 title
,那么我就这样做: this.SetState({title:"Updated title"})
。但是如果我需要更新更深入的属性,我该怎么办,例如: state.colorSet.selected
?它不起作用:
this.setState({ colorSet: { selected }})
。我可以只将更改传入 setState()
,而不是通过应用更改来传递我的状态的完整深度克隆吗? 最佳答案
如果要更新深层嵌套属性,最好采用以下方式:
this.setState(prevState => ({colorSet: {...prevState.colorSet, selected: newSelectedArray }}))
关于javascript - react : how to update a deep property?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62678882/