Redux:通过创建浅拷贝来改变状态如何在reducer中引起问题?
制作状态的浅层副本在Redux文档中列出如下:Redux:通过创建浅拷贝来改变状态如何在reducer中引起问题?,redux,Redux,制作状态的浅层副本在Redux文档中列出如下: 函数updateNestedState(状态、操作){ //问题:这只是一个浅拷贝! 让newState={…state} //错误:nestedState仍然是同一个对象! newState.nestedState.nestedField=action.data 返回新闻状态 } 我还是不明白为什么这是Redux的问题。Redux中的reducer不是同步工作吗?当reducer返回时,Redux将只考虑返回的新状态并丢弃旧状态?根据我与Mar
函数updateNestedState(状态、操作){
//问题:这只是一个浅拷贝!
让newState={…state}
//错误:nestedState仍然是同一个对象!
newState.nestedState.nestedField=action.data
返回新闻状态
}
我还是不明白为什么这是Redux的问题。Redux中的reducer不是同步工作吗?当reducer返回时,Redux将只考虑返回的新状态并丢弃旧状态?根据我与Mark Erikson(Redux mantainer)的讨论,它不会导致Redux出现问题,但会破坏围绕它构建的库和工具(Redux-DevTools、React-Redux、React等)依赖于不变性的正确使用
- 时间旅行调试和组件重新渲染很可能会中断
- 还原函数完全有可能改变它的状态,但我们不应该做这些事情