例如,
constructor(props) {
super(props);
this.state = {
interactions: {
liked: [],
saved: [],
receivedLikeRecently: null
}
}
我正在努力解决不变性问题,所以如果我现在想将 receivedLikeRecently
更新为 true
,我是否必须这样做:
this.setState({
interactions: {
receivedLikeRecently: true
}
});
其他值呢?我还需要包括它们吗?
根据文档 setState 进行浅合并,所以我假设其他嵌套属性不会复制,对吗?还是我理解错了?
谢谢
最佳答案
你应该保持你的状态平坦以避免深度合并,深度合并必须手动完成并且会变得非常烦人,如果频繁进行还会导致性能下降。
Component.setState
使用简单的 ===
来测试属性是否已更改,这将导致它始终更新状态对象的对象值属性。
关于javascript - 状态应该是嵌套的还是扁平的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43128577/