我有简单的状态:

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/

10-09 19:44