【发布时间】:2019-04-25 12:26:31
【问题描述】:
在构建 redux 应用程序时,找到传递给 combineReducers 对象的 reducer 之间的依赖关系是否正确?更详细地说,如果我有两个减速器处理状态的不同部分但都在听相同的动作,那么安排减速器是否正确(或可能)以便在 R2 之前处理 R1?或者这是否表明可能存在设计缺陷?
【问题讨论】:
标签: redux react-redux
在构建 redux 应用程序时,找到传递给 combineReducers 对象的 reducer 之间的依赖关系是否正确?更详细地说,如果我有两个减速器处理状态的不同部分但都在听相同的动作,那么安排减速器是否正确(或可能)以便在 R2 之前处理 R1?或者这是否表明可能存在设计缺陷?
【问题讨论】:
标签: redux react-redux
在构建 redux 应用时,combineReducers 中 reducer 的顺序排列是否重要?
没有。 combineReducers() 基本上只是一个映射而不是一个有序列表。
是否正确(或可能)安排减速器以便在 R2 之前处理 R1?或者这是否表明可能存在设计缺陷?
reducer 之间根本不应该有任何依赖关系。如果存在依赖关系,那将是设计缺陷。
Reducer 只关心根据操作更新整个 state 对象的唯一部分或切片。
如果您想要顺序更新状态,请检查redux-saga 或让组件顺序调度两个单独的操作。
【讨论】:
就我一直在编写 reducer 而言,它们在 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,它不是您可以在 reducers/ 文件夹中手动写出的减速器,但带有 Redux Form 库,并且还注意到我首先导入了 formReducer,但我分配了它combineReducers 对象内的第二名,所以不,不需要顺序。
【讨论】: