StoreModule.forRoot()-如何在没有附加键的情况下返回对象

时间:2019-02-24 15:00:25

标签: ngrx ngrx-store reducers

我想知道如何返回与reducer函数相同类型的对象:

function storeReducer(
  state = INITIAL_APPLICATION_STATE,
  action: Actions
): ApplicationState {
  switch (action.type) {
    case LOAD_USER_THREADS_ACTION:
      return handleLoadUserThreadsAction(state, action);
    default:
      return state;
  }
}

我希望对象的类型为 ApplicationState ,但是采用这种方法:

StoreModule.forRoot({storeReducer})

我正在用钥匙找东西

storeReducer:{ // object of type Application State}

我希望得到对象(没有附加的storeReducer键):

{//object of type Application State}

也尝试过StoreModule.forRoot(storeReducer),但后来我得到的是空对象,它不起作用。

1 个答案:

答案 0 :(得分:0)

StoreModule上的forRoot方法需要使用ActionReducerMap,而不是化简器的结果。

我通常将我的文件放在一个单独的文件中,如下所示:

export interface IAppState {
    aPieceOfState: IAPieceOfState;
}

export const reducers: ActionReducerMap<IAppState> = {
    aPieceOfState: aPieceOfStateReducer
};

然后将其导入到app.module.ts中,并像这样使用它:

StoreModule.forRoot(reducers)