Я пытаюсь перейти на страницу после получения ответа от почтового вызова 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.
Приложение работает нормально, но я хочу понять, почему я получаю эту ошибку.
Ошибка консоли:
@ AJT_82 AJT_82 Там много обработки, но я не думаю, что проблема в UserEditComponent, поскольку вызов router.navigate вне подписки (со статическим идентификатором) не вызывает никаких ошибок. Кроме того, вызов router.navigate внутри setTimeout, который находится внутри подписки, решает проблему.





Через трассировку стека я понял, что ошибка вызвана модальной директивой ngx-bootstrap.
modal.directive.js:276
Я скрывал модальный режим перед вызовом функции createUser, и из-за router.navigate он уничтожался, и это вызывало ошибку.
Исправлено, добавив вызов функции createUser внутри modal.onHidden.subscribe().
Так как же выглядит
UserEditComponent, та часть, где вы получаете параметр?