问题描述
最近我偶然发现了代码库,其中每个减速器都如下所示。我猜他们正在传播 initialState
以在 reducer 初始化时摆脱一些“剩余的”嵌套状态,但这是否有意义?
const initialState = {...}
const reducer = (state = {...initialState},action) => {
...
}
解决方法
如果你的 reducer 没有违反不变性原则,那么传播一个 initialState 就没有任何意义,因为无论如何,reducer 都会在每个动作上返回一个新的状态(例如使用前面提到的传播操作符)。