我有两个看起来像这样的标准还原器
reducer1
const reducer1 = (state, action) => {
switch(action.type) {
case('clear'):
return {
...state,
reducer1property1: null
}
...<other cases>...
}
}
reducer2
const reducer2 = (state, action) => {
switch(action.type) {
case('clear'):
return {
...state,
reducer2property1: null
}
...<other cases>...
}
}
因此,如果我派遣了"清除"类型的操作,则属性1将在两个还原器中清除。
我将重还原组合在一起:
const combinedReducer = combineReducers({
Reducer1,
Reducer2
})
我的问题是:有没有办法在不单独编写"清晰"情况的情况下进行此操作?例如,是否有一种方法可以将"清晰"案例添加到combinedReducer
上,以便我只能写一次?在我的实际应用中,还有更多的还原器,所以我希望简化。
谢谢!
这是"高级还原器"的概念。如果功能是常见的,请写一次,然后使用该简化器来"包装"任何需要的其他需要的还原器行为。在您的情况下,类似:
const rootReducer = combineReducers({
reducer1 : closeable(reducer1),
reducer2 : closeable(reducer2),
});
请参阅" REDUX DOCS"页面"重复使用还原逻辑",此幻灯片上的高级还原器功能,以及有关Redux还原器和选择器上的其他一些文章,以获取更多详细信息。
no。合并还原器仅接收还原器。
,由于每个还原器都负责国家的不同切片,如果您希望"明确"诉讼适用于所有还原器,则必须在所有还原中进行处理。