我有一个减速器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。但是很明显,它将reducerAreducerB组合为外部减速器的子代。这将需要我以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

07-24 22:05