作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的项目使用multireducer维护同一个 reducer 的多个实例。我的商店是使用这样的东西创建的:
const initialState = {};
export default createStoreWithMiddleware(combineReducers({
foo: fooReducer,
sorting: multireducer({
sorterA: tableSorterReducer,
sorterB: tableSorterReducer,
}),
}), initialState);
现在,我需要为 sorterB
添加初始状态。如果我添加以下内容...
const initialState = {
sorting: {
sorterB: { key: 'foo', order: 'asc' }
}
};
...则 sorterA
根本不会在存储中创建,因为它不包含在 sorting
的初始值中。
那么我怎样才能只为 multireducer 的一部分指定初始状态呢?
最佳答案
查看文档帮助我找到了解决方案。
All reducers are passed undefined on initialization, so they should be written such that when given undefined, some value should be returned.
所以我需要做的就是确保我的reducer函数在收到undefined
时返回预期的初始状态!
这是我想到的:
export default createStoreWithMiddleware(combineReducers({
foo: fooReducer,
sorting: multireducer({
sorterA: tableSorterReducer,
sorterB: (state = { key: 'foo', order: 'asc' }, action) =>
tableSorterReducer(state, action),
}),
}));
当然,tableSorterReducer
定义了它自己的initialState
,但我在这里重写了它。
关于javascript - 如何为单个 multireducer 子切片提供初始状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44871918/
我的项目使用multireducer维护同一个 reducer 的多个实例。我的商店是使用这样的东西创建的: const initialState = {}; export default creat
我是一名优秀的程序员,十分优秀!