如何在getReducers()中返回reducers的映射:ActionReducerMap <fromfeature.state>?

时间:2017-10-21 07:56:20

标签: ngrx ngrx-store

我正在尝试通过功能模块(使用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 { }

1 个答案:

答案 0 :(得分:3)

我认为每个reducer,无论是root还是feature reducer,都会返回一个新的状态对象。但事实上并非如此。减少器的功能是什么,它只返回它更新的状态段。

来自ngrx/platform/example-app

  

我们将每个reducer视为数据库中的表。这意味着我们的   顶级状态接口只是内部状态类型的键映射。