在阅读有关在 Redux 中更新嵌套状态对象的文档时,我偶然发现了这个常见错误,它指出仅对顶层对象进行浅拷贝是不够的:
function updateNestedState(state, action) {
// Problem: this only does a shallow copy!
let newState = {...state};
// ERROR: nestedState is still the same object!
newState.nestedState.nestedField = action.data;
return newState;
}
但我不知道为什么它是不够的,因为从技术上讲它是有效的,正如你在这个小提琴中看到的:https : //codesandbox.io/s/D9l93OpDB
我很乐意对此声明进行进一步的澄清/解释,也很乐意举例说明更新此类状态对象的最佳做法是什么。
谢谢!