效果派遣了无效的动作-动作必须是对象

时间:2019-11-14 07:39:29

标签: ngrx ngrx-effects

当我添加.map(...)通知服务和“关闭”对话框功能时,出现错误。

设置此方法的正确方法是什么? 这是我的效果

@Effect()
    addNewUser$ = this.actions$.pipe(
     ofType(actions.UserActionTypes.addNewUser),
        mergeMap((user: actions.addNewUser) =>
          this.userService.createUser(user.user).pipe(
             map(() => {
               new actions.LoadUsers(),
               this.notificationService.success("User added successfully!");  <--- added
               this.dialogRef.closeAll();    <--- added 
             }),
    catchError(error => of(new actions.Error(error.error)))
  )
)

);

我遇到错误

  

core.js:6014错误错误:效果“ UserEffects.addNewUser $”调度了无效操作:未定义

     

TypeError:操作必须是对象

有帮助吗? thnx

1 个答案:

答案 0 :(得分:1)

就像错误提示一样,您应该返回一个动作。 map没有返回值,因此它将返回undefined-导致错误。

尝试以下操作:

this.notificationService.success("User added successfully!");  <--- added
this.dialogRef.closeAll();    <--- added
return new actions.LoadUsers();