ngrx: Эффект для действия INIT магазина - PullRequest
0 голосов
/ 08 апреля 2019

Я хочу отправить действие, когда магазин ngrx начнет (@ngrx/store/init). Я создал Эффект для этого:

    @Effect()
  reloadConext$ = this.actions$.pipe(
    ofType(INIT),
    switchMap(() => {
      console.log('INIT ACTION');
        //dispatch my action here
        return of([]);
    }

Эффект не срабатывает при отправке действия инициализации магазина. У меня есть модули эффектов для root, зарегистрированные в app.module:

EffectsModule.forRoot([AppEffects]),

Если я удаляю фильтр действий ofType, событие запускается. Кто-нибудь знает, что фильтр для действия init не работает?

Заранее спасибо.

1 Ответ

2 голосов
/ 08 апреля 2019

Я думаю, вы ищете метод жизненного цикла ROOT_EFFECTS_INIT или onInitEffects для некорневых эффектов.

ROOT_EFFECTS_INIT из документов:

@Effect()
init$ = this.actions$.pipe(
  ofType(ROOT_EFFECTS_INIT),
  map(action => ...)
);

onInitEffects из документов:

class UserEffects implements OnInitEffects {
  ngrxOnInitEffects(): Action {
    return { type: '[UserEffects]: Init' };
  }
}
...