Redux 传播 InitialState 模式

问题描述

最近我偶然发现了代码库,其中每个减速器都如下所示。我猜他们正在传播 initialState 以在 reducer 初始化时摆脱一些“剩余的”嵌套状态,但这是否有意义?

const initialState = {...}

const reducer = (state = {...initialState},action) => {
  ...
}

解决方法

如果你的 reducer 没有违反不变性原则,那么传播一个 initialState 就没有任何意义,因为无论如何,reducer 都会在每个动作上返回一个新的状态(例如使用前面提到的传播操作符)。