StoreModule.forRoot () - как вернуть объект без дополнительного ключа - PullRequest
0 голосов
/ 24 февраля 2019

Мне интересно, как я могу вернуть объект того же типа, что и функция-редуктор:

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 голосов
/ 24 февраля 2019

Метод forRoot в StoreModule ожидает и ActionReducerMap, а не результат вашего редуктора.

Обычно я устанавливаю шахту в отдельный файл, например так:

export interface IAppState {
    aPieceOfState: IAPieceOfState;
}

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

Затем импортируйте это вapp.module.ts и используйте его как:

StoreModule.forRoot(reducers)
...