我有一个称为动物的特征减速器(切片减速器)。我想将这些减速器分成哺乳动物、鸟类、鱼类等。这部分很简单,因为我可以简单地使用ActionReducerMap
.
现在假设哺乳动物的减速器状态很大,我想将其分成几个较小的减速器,即猫的家族、狗的家族等。ActionReducerMap 不返回减速器并且不可嵌套。我尝试在网上搜索解决方案或示例,但找不到。简而言之,我的问题是如何制作多层嵌套减速器。
export interface AnimalsState{
mammals: fromMammals.mammalsState;
birds: fromBirds.birdsState;
}
export const reducers: ActionReducerMap<AnimalsState> = {
mammals: fromMammals.reducer,
birds: fromBirds.reducer
};
我想将哺乳动物减速器分成更小的减速器。
你可以使用以下方法编写一个新的减速器联合减速机 https://ngrx.io/api/store/combineReducers函数来自@ngrx/store
,这将允许您结合您的dogs
and cats
减速器用于mammals
state.
我做了一个关于如何使用它的快速示例堆栈闪电战 https://stackblitz.com/edit/angular-aki6m7.
的例子是combineReducers
函数可以在app/store/mammals/mammals.reducer.ts https://stackblitz.com/edit/angular-aki6m7?file=src%2Fapp%2Fstore%2Fmammals%2Fmammals.reducer.ts:
import { combineReducers } from '@ngrx/store';
import { catsStoreName, catsReducer, CatsState } from '../cats';
import { dogsStoreName, dogsReducer, DogsState } from '../dogs';
export type MammalsState = {
[catsStoreName]: CatsState,
[dogsStoreName]: DogsState,
}
export const mammalsReducer = combineReducers<MammalsState>({
[catsStoreName]: catsReducer,
[dogsStoreName]: dogsReducer,
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)