开发者问题收集

Effect 发出了无效操作 - 操作必须是对象

2019-11-14
823

当我添加 .map(...) 通知服务和 CLOSE 对话框函数时,我收到错误。

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

@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 ERROR Error: Effect "UserEffects.addNewUser$" dispatched an invalid action: undefined

TypeError: Actions must be objects

有什么帮助吗?谢谢

1个回答

如错误所示,您应该返回一个操作。 map 没有返回值,因此它将返回 undefined - 从而导致错误。

尝试以下操作:

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