我想在ngrx存储初始化(@ngrx/store/init
)时调度一个动作。我为此创建了一个效果:
@Effect()
reloadConext$ = this.actions$.pipe(
ofType(INIT),
switchMap(() => {
console.log('INIT ACTION');
//dispatch my action here
return of([]);
}
调度存储初始化动作时不会触发该效果。我在app.module中注册了root效果模块:
EffectsModule.forRoot([AppEffects]),
如果我删除了ofType
动作过滤器,则会触发该事件。有谁知道初始化操作的过滤器不起作用?
谢谢。
答案 0 :(得分:2)
我认为您正在寻找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' };
}
}
答案 1 :(得分:0)