在Redux Reducer中读取商店的初始状态

Redux应用程序中的初始状态可以通过两种方式设置:

  • 将其作为第二个参数传递给createStoredocs link
  • 将其作为第一个参数传递给您的(子)还原器(docs链接

如果将初始状态传递给商店,您如何从商店中读取该状态并将其作为化简器中的第一个参数?

达蒙理查德2020/03/13 00:32:53

您如何从商店中读取该状态并将其作为化简器中的第一个参数?

CombineReducers()为您完成这项工作。编写它的第一种方法并没有真正的帮助:

const rootReducer = combineReducers({ todos, users })

但是另一种,这是等效的,更清楚:

function rootReducer(state, action) {
   todos: todos(state.todos, action),
   users: users(state.users, action)
}
卡卡西Tom2020/03/13 00:32:53

简而言之:Redux是将初始状态传递给reducer的人,您无需执行任何操作。

当您打电话时,createStore(reducer, [initialState])您是在让Redux知道第一个操作进入时要传递给reducer的初始状态是什么。

您提到的第二个选项仅在创建商店时未通过初始状态的情况下适用。

function todoApp(state = initialState, action)

仅当Redux没有传递状态时,状态才会被初始化