订阅http发布请求后在router.navigate上出现ObjectUnsubscribedError

时间:2019-02-06 16:27:51

标签: angular ngx-bootstrap

从http帖子获得回复后,我试图导航到页面。路由器导航需要响应对象,因为它基于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);
}

app.routing.ts内部

{path: 'userEdit/:userId', component: UserEditComponent}

它可以正确导航到“ userEdit / 10”路径,但在控制台上会显示ObjectUnsubscribedError。

该应用程序运行正常,但我想了解为什么会收到此错误。

控制台错误:

screenshot of the console error

1 个答案:

答案 0 :(得分:1)

通过堆栈跟踪,我意识到ngx-bootstrap模态指令抛出了错误。

modal.directive.js:276

我在调用createUser函数之前隐藏了模态,并且由于router.navigate被破坏,这引发了错误。

通过在modal.onHidden.subscribe()中添加createUser函数调用来解决此问题