将大型减速器拆分为较小的减速器

时间:2018-11-22 09:15:10

标签: angular typescript ngrx ngrx-store

我有一个称为动物的特征缩减器(slice reducer)。我想将这些减速器拆分为哺乳动物,鸟类,鱼类等。这部分很容易,因为我可以简单地使用ActionReducerMap

现在让我们说哺乳动物的减速器状态非常巨大,我想将其拆分为几个较小的减速器,即猫科,狗科等。ActionReducerMap不会返回减速器且不可嵌套。我尝试在网络上搜索解决方案或示例,但找不到。简而言之,我的问题是如何制作多层嵌套的减速器。

export interface AnimalsState{
  mammals: fromMammals.mammalsState;
  birds: fromBirds.birdsState;
}

export const reducers: ActionReducerMap<AnimalsState> = {
  mammals: fromMammals.reducer,
  birds: fromBirds.reducer
};

我想将哺乳动物的减速器分成较小的减速器。

1 个答案:

答案 0 :(得分:1)

您可以使用@ngrx/store中的combineReducers函数来组成新的异径管,这将使您可以将dogscats异径管组合成{{1 }}状态。

我简单介绍了如何在stackblitz上使用它。

mammals函数的示例可以在app/store/mammals/mammals.reducer.ts中找到:

combineReducers