- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个标准 reducer ,它们看起来都是这样的
reducer 1
const reducer1 = (state, action) => {
switch(action.type) {
case('clear'):
return {
...state,
reducer1property1: null
}
...<other cases>...
}
}
reducer 2
const reducer2 = (state, action) => {
switch(action.type) {
case('clear'):
return {
...state,
reducer2property1: null
}
...<other cases>...
}
}
因此,如果我分派(dispatch)“clear”类型的操作,那么 property1 将在两个 reducer 中被清除。
我像这样组合 reducer :
const combinedReducer = combineReducers({
Reducer1,
Reducer2
})
我的问题是:有没有一种方法可以做到这一点,而无需在每个 reducer 中单独编写“清晰”的情况?例如,有没有办法将“clear”案例添加到combinedReducer上,以便我只能编写一次?在我的实际应用程序中,有更多的 reducer ,因此我希望进行简化。
谢谢!
最佳答案
这就是“高阶 reducer ”概念的用武之地。如果功能很常见,则编写一次,然后使用该 reducer “包装”需要该行为的任何其他 reducer 。在你的情况下,类似:
const rootReducer = combineReducers({
reducer1 : closeable(reducer1),
reducer2 : closeable(reducer2),
});
请参阅Redux Docs page on "Reusing Reducer Logic" ,此幻灯片位于 The Power of Higher Order Reducers ,以及关于 Redux Reducers and Selectors 的其他一些文章了解更多详情。
关于javascript - 如何在Redux中为一组组合的reducer制定规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54816438/
我是一名优秀的程序员,十分优秀!