我正在尝试通过功能模块(使用ngrx docs)组合状态时注入功能缩减器。
import { NgModule, InjectionToken } from '@angular/core';
import { StoreModule, ActionReducerMap } from '@ngrx/store';
import * as fromFeature from './reducers';
export const FEATURE_REDUCER_TOKEN = new InjectionToken<ActionReducerMap<fromFeature.State>>('Feature Reducers');
我应该回到这里?
export function getReducers(): ActionReducerMap<fromFeature.State> {
// map of reducers
return {
};
}
我试过
export function getReducers(): ActionReducerMap<fromFeature.State> {
// map of reducers
return {
reducerA: FeatureAReducer
};
}
但它给出了错误对象文字可能只指定已知属性。
模块代码的其余部分:
@NgModule({
imports: [
StoreModule.forFeature('feature', FEATURE_REDUCER_TOKEN),
],
providers: [
{
provide: FEATURE_REDUCER_TOKEN,
useFactory: getReducers
}
]
})
export class FeatureModule { }
答案 0 :(得分:3)
我认为每个reducer,无论是root还是feature reducer,都会返回一个新的状态对象。但事实上并非如此。减少器的功能是什么,它只返回它更新的状态段。
我们将每个reducer视为数据库中的表。这意味着我们的 顶级状态接口只是内部状态类型的键映射。