ngrx:商店INIT操作的效果

时间:2019-04-07 23:29:52

标签: angular ngrx ngrx-store ngrx-effects

我想在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动作过滤器,则会触发该事件。有谁知道初始化操作的过滤器不起作用?

谢谢。

2 个答案:

答案 0 :(得分:2)

我认为您正在寻找ROOT_EFFECTS_INITonInitEffects生命周期方法来解决非根效应。

来自文档的

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)

我找到了ngRx商店的流程图,在某处形成并且很棒 enter image description here

对于理解,可以做什么以及按什么顺序有用?