构建redux应用程序时,contractReducers中reduce的顺序安排是否重要?

时间:2019-02-26 03:00:44

标签: redux react-redux

在构建redux应用程序时,是否正确找到传递给CombineReducers对象的化简器之间的依赖关系?更详细地说,如果我有两个化简器处理状态的不同部分,但都听同一个动作,那么安排化简器以在R2之前处理R1是否正确(或可行)?还是表明可能存在设计缺陷?

2 个答案:

答案 0 :(得分:0)

  

在构建redux应用程序时,contractReducers中reduce的顺序安排是否重要?

不。 combineReducers()基本上只是映射,而不是有序列表。

  

安排减速器,以便在R2之前处理R1是否正确(或可行)?还是表明可能存在设计缺陷?

Reducer之间完全不应该有任何依赖关系。如果存在依赖关系,那将是设计缺陷。

归约器只关心基于操作来更新整个state对象的唯一部分或切片。

如果要顺序更新状态,请检查或让组件按顺序分派两个单独的动作。

答案 1 :(得分:0)

就我编写减速器而言,它们在combineReducers()调用中的顺序安排无关紧要。

您可能会有类似以下的内容:

import { combineReducers } from "redux";
import { reducer as formReducer } from "redux-form";
import authReducer from "./authReducer";

export default combineReducers({
  auth: authReducer,
  form: formReducer
});

请注意,我有一个来自Redux Form的formReducer,它不是Reduce Form库附带的简化版,您可以在自己的reducers/文件夹中手动写出它,还注意到我导入了formReducer首先,但我将其分配给combineReducers对象内的第二名,所以没有,没有必要。