angular - 在 http post 请求的订阅中,router.navigate 上的 ObjectUnsubscribedError
问题描述
在收到 http post call 的响应后,我试图导航到一个页面。路由器导航需要响应对象,因为它基于 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。
该应用程序运行良好,但我想了解为什么会出现此错误。
控制台错误:
解决方案
我通过堆栈跟踪意识到错误是由 ngx-bootstrap 模态指令引发的。
modal.directive.js:276
我在 createUser 函数调用之前隐藏了模态,并且由于 router.navigate 它被破坏并且引发了错误。
通过在 modal.onHidden.subscribe() 中添加 createUser 函数调用来修复它
推荐阅读
- batch-file - 如果 bitsadmin 给出错误,如何继续 .bat 文件上的命令
- spark-ar-studio - 我如何在 spark ar 中获得水龙头的确切位置
- c++ - c++ 入门中关于复制构造函数的一个问题
- python - Nims游戏python
- flutter - 快速文档弹出窗口中忽略的链接
- git - 当远程分支被删除时,本地 git 分支是否会自动删除?
- jenkins - 如何为大型项目实现浅存储库克隆/签出 SVN(Subversion 存储库)的 Jenkins 管道
- c# - 如何拥有一个单例类并在整个应用程序中使用它 c#
- python - 字典中的隐蔽嵌套列表(列表中的每个元素都必须是字典中的键)
- r - R API 在 Azure API 管理 CORS 错误下使用 Plumber