我有一个减速器reducerA
看起来像这样
reducerA = {
A: [],
B: {},
C: {},
D: [],
};
我还有另一个减速器
reducerB
看起来像这样reducerB = {
E: {},
}
我想做的是将
reducerB
合并到reducerA
中,并获得看起来像这样的东西reducerA = {
A: [],
B: {},
C: {},
D: [],
reducerB: {
E: {}
},
};
在
reducerA
函数中触发状态变量A,B,C和D的更改,而在reducerB
函数中触发状态变量E的更改。我已经尝试使用
combineReducers
。但是很明显,它将reducerA
和reducerB
组合为外部减速器的子代。这将需要我以reducerA
的方式访问reducerA.reducerA.A
中的状态变量export default {
reducerA: combinedReducers({reducerA, reducerB})
}
我想知道是否有一个相当临床的解决方案。我发现了很多解决问题的库。但是我仍然对它们不情愿,如果可能的话,我想在没有它们的情况下解决这个问题。
最佳答案
const reducerA = (state, action) => {
const newState = {}
switch (action.type) {
case someaction:
newState = {
A: [],
B: {},
C: {},
D: [],
}
default:
newState = {
...state
}
}
return {
...newState,
reducerB: reducerB(state, action)
}
}
这应该可以解决您的问题。 ; D