#angular #ngrx #ngrx-store #ngrx-effects
#angular #ngrx #ngrx-хранилище #ngrx-эффекты
Вопрос:
Я хочу отправить действие, когда ngrx сохранит inits ( @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
фильтр действий, событие будет запущено. Кто-нибудь знает, что фильтр для действия инициализации не работает?
Заранее спасибо.
Ответ №1:
Я думаю, вы ищете метод жизненного цикла ROOT_EFFECTS_INIT или onInitEffects для некорневых эффектов.
ROOT_EFFECTS_INIT из документов:
@Effect()
init$ = this.actions$.pipe(
ofType(ROOT_EFFECTS_INIT),
map(action => ...)
);
Oniniteэффекты из документов:
class UserEffects implements OnInitEffects {
ngrxOnInitEffects(): Action {
return { type: '[UserEffects]: Init' };
}
}
Комментарии:
1. если кто-то приходит к этому и по какой-то причине нуждается
@ngrx/store/init
вместо этого, вы можете получить это изimport { INIT } from '@ngrx/store';