gpt4 book ai didi

javascript - 如何在Redux中为一组组合的reducer制定规则?

转载 作者:行者123 更新时间:2023-11-28 17:09:35 25 4
gpt4 key购买 nike

我有两个标准 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/

25 4 0
文章推荐: Python:使用 SciPy 文档对 .csv 值执行 FFT
文章推荐: php - yii2 radioList 内联表单域
文章推荐: html - 如何在 HTML 中的 之后和 中创建换行符?