0

我的行动——

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 ');

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

注意:我正在使用 angular 8 的 ngrx 商店实体。

4

1 回答 1

0

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

于 2020-01-14T06:47:19.690 回答