我有一个用于创建新记录的组件...提交表单时,我调度了一个CREATE操作。
在此组件的OnInit中,我有一个ActionsSubject订阅 捕获CREATE操作的完成。完成此操作后,我将重定向到概述组件。
这是我第一次插入记录时的正常工作,但是当尝试添加第二条记录时,只要回到创建组件并立即将我重定向到概述,就会立即击中actionssubject完成订阅。
[1394.43833333]
我应该能够返回到create组件而无需立即重定向...
答案 0 :(得分:0)
我认为我做错了您,您正在听操作并在组件中对其进行处理,这不好。您应该仅在减速器上监听动作 (如果是同步处理程序+会产生新状态)或效果(如果是异步处理程序,或者只是副活动)。 因此,您可以在效果上收听 CREATE_SUCCESS ,然后在那里重新路由。例如:
constructor(
...,
private router: Router,
...
) { }
@Effect({ dispatch: false })
createSuccess$: Observable<Action> = this.actions$.pipe(
ofType(SubSpecialisatiesActionTypes.CREATE_SUCCESS),
tap((action) => this.router.navigate(['/contacts', action.payload.id]))
);
希望有帮助。
答案 1 :(得分:0)
我知道了。 ActionsSubject存储最新动作。即使在破坏订阅的情况下。
我将其更改为ScannedActionsSubject,现在一切正常。