我已经使用React有一段时间了,我一直使用扩展运算符来更新对象的状态,因为我记得阅读过应该直接更改当前状态。
例如,现在我会像这样写:
const changeState = () => {
setState(prevState => {...prevState, existingKey: 'new value'})
}
我刚刚在React文档中看到了一个名为"State Updates are Merged"的章节(https://reactjs.org/docs/state-and-lifecycle.html#state-updates-are-merged)。如果我理解得正确,它基本上是说我可以用以下代码代替原有代码:
const changeState = () => {
setState({existingKey: 'new value'})
}
我需要更新状态中指定的键,而对象中的所有其他键将保持不变。我理解得对吗?我在stackoverflow上从未见过这种写法,我总是看到人们建议使用展开运算符,这是有原因的吗?
userData.age = 28
会改变状态对象。 - Drew Reese