我的行动没有调用相关的减速器和效果

时间:2020-01-14 05:09:23

标签: angular ngrx-store ngrx-entity

我的动作-

export class RefreshToken implements Action {
 readonly type = GeneralActionTypes.refreshToken;

 constructor(public token: string) {
  console.log('%c action called ', 'background:#00e;color:#000', token);
 }
}

相关效果-

@Effect({dispatch: false})
refreshToken$: Observable<Action> = this.actions$.pipe(
 ofType<RefreshToken>(GeneralActionTypes.refreshToken),
 map(a => {
  console.log('%c effect is called ', 'background:#00e;color:#000', a)
  return a;
 })
);

和减速器-

case GeneralActionTypes.refreshToken:
  console.log('inside refresh token ', action);
  return state;

当我打电话时-

new RefreshToken('i am called qwerty ');

运行该动作,并打印其中编写的控制台,但相关的效果和减速器不运行。

注意:我正在使用角度为8的ngrx存储实体。

1 个答案:

答案 0 :(得分:0)

您需要调用商店的dispatch方法。在此之前,请注入商店的实例,并使用作为操作的参数来调用dispatch方法。 例如:this.store.dispatch(new RefreshToken('parameter'); 还要检查您的导入(StoreModule,EffectsModule)。