Angular 路由器上的ObjectUnsubscribedError。在http post请求的订阅中导航

Angular 路由器上的ObjectUnsubscribedError。在http post请求的订阅中导航,angular,ngx-bootstrap,Angular,Ngx Bootstrap,在收到http post调用的响应后,我试图导航到一个页面。路由器导航需要响应对象,因为它基于response.id进行路由,如下代码所示 user.component.ts: this._userService.createUser(data).subscribe(response => { this.router.navigate(['userEdit/' + response.id]); }); 服务内部: createUser(userdata: User): Obser

在收到http post调用的响应后,我试图导航到一个页面。路由器导航需要响应对象,因为它基于response.id进行路由,如下代码所示

user.component.ts:

this._userService.createUser(data).subscribe(response => {
    this.router.navigate(['userEdit/' + response.id]);
});
服务内部:

createUser(userdata: User): Observable<User> {
    return this._httpClient.post<User>(url, userData, this._httpOptions);
}
它可以正确地导航到“userEdit/10”路径,但在控制台上会给出ObjectUnsubscribedError

应用程序运行良好,但我想了解为什么会出现此错误

控制台错误:


我通过堆栈跟踪意识到错误是由ngx引导模式指令引发的

modal.directive.js:276
我在createUser函数调用之前隐藏了模态,由于router.navigate的原因,模态被破坏了,因此抛出了错误


通过在modal.onHidden.subscribe()内部添加createUser函数调用修复了此问题。

那么
UserEditComponent
是如何获得参数的呢?@AJT_82有很多处理过程,但我认为问题不在UserEditComponent中,因为调用了router(使用静态id)不会引发任何错误。此外,在订阅内的setTimeout内调用router.navigate可以解决此问题。
modal.directive.js:276