ngOnDestroy вызывается при первой загрузке страницы - PullRequest
1 голос
/ 08 апреля 2019

Когда я загружаю страницу в первый раз, на некоторых страницах отображается ошибка отписки в ngOnDestroy, так как я отписываюсь от подписки на ней.

Я не уверен, почему ngOnDestroy вызывается при инициализации компонента.

enter image description here

enter image description here

Это ошибка, которую я вижу при первой загрузке страницы.

Я думал, что это какая-то проблема из angular2-multiselect-dropdown, но в каком-то другом компоненте также вызывается его собственный ngOnDestory, который говорит, что подписка на отписку не определена.

Поэтому я добавил условие if для удаления сообщения об ошибке. enter image description here

Это создание подписки.

enter image description here enter image description here

На самом деле я не думаю, что у него есть какие-то другие проблемы в определении наблюдаемого.

Так это проблема жизненного цикла угловых компонентов или проблема angular2-multiselect-dropdown?

Я не видел эту ошибку раньше и не уверен, что сделал неправильно. Может у кого-нибудь была похожая проблема или помогите мне в этом? Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 08 апреля 2019

Вы перенаправляете на другую страницу в конструкторе?

На основании этих двух страниц это единственная возможность, когда onDestroy вызывается без onInit (). Angular 4 - Может ли OnDestroy работать без запуска OnInit?

https://www.bennadel.com/blog/3356-ngoninit-may-not-get-called-before-ngondestroy-is-called-in-angular-4-4-6.htm

0 голосов
/ 08 апреля 2019

Какая у вас версия rxjs?

Если rx v5, хорошо, вы можете использовать .unsubscribe () на подписчике, но если это v4, вы должны использовать .dispose ().

Кажется, это единственная проблема.

...