Угловые 6 / NGRX зерноуборочные комбайны - PullRequest
0 голосов
/ 11 июня 2018

Я использую Angular 6 с NgRX 4. У меня есть несколько редукторов, которые я хотел бы объединить.

app.module.ts

  import { BrowserModule } from '@angular/platform-browser';
    import { NgModule } from '@angular/core';

    import { StoreModule } from '@ngrx/store';
    import { EffectsModule } from '@ngrx/effects';

    import { StoreDevtoolsModule } from '@ngrx/store-devtools';

    import { AppComponent } from './app.component';
    import counterEffects from './store/counter/counter.effects';

    import reducers from './store/reducers';

    @NgModule({
      declarations: [AppComponent],
      imports: [
        BrowserModule,
        StoreModule.forRoot(reducers),
        EffectsModule.forRoot([counterEffects]),
        StoreDevtoolsModule.instrument({
          maxAge: 10,
        }),
      ],
      providers: [],
      bootstrap: [AppComponent],
    })
    export class AppModule {}

redurs.ts

import { combineReducers } from '@ngrx/store';
import { reducer as counterReducer, key as counterKey } from './counter';
import { reducer as profileReducer, key as profileKey } from './profile';

const appReducer = combineReducers({
  [counterKey]: counterReducer,
  [profileKey]: profileReducer,
});

export default (state, action) => {
  if (action.type === 'REDIRECT_TO_EXTERNAL') {
    state = undefined;
  }

  return appReducer(state, action);
};

Мои редукторы - это стандартные редукторы, ничего особенного в этом нет.

Исходя из фона React / Redux, я бы настроил несколько редукторов следующим образом,Однако в Angular, когда я пытаюсь выбрать из магазина, я получаю неопределенный.Когда я пытаюсь просмотреть магазин с помощью инструментов разработчика, я не вижу ни одного из моих редукторов, а просто состояние {}

Как настроить несколько редукторов в Angular 6 / NgRX 4?

1 Ответ

0 голосов
/ 11 июня 2018
import { ActionReducerMap } from '@ngrx/store';
import { reducer as counterReducer, key as counterKey } from './counter';
import { reducer as profileReducer, key as profileKey } from './profile';

export interface IAppState {
  [counterKey]: any;
  [profileKey]: any;
}

export const reducers: ActionReducerMap<IAppState> = {
  [counterKey]: counterReducer,
  [profileKey]: profileReducer,
};
...