В приложении Ioni c v4 ngOnDestroy
не вызывается, когда я обновляю sh страницу, а затем возвращаюсь на другую страницу, вызывая Router.navigateByUrl()
.
На основе этот ответ , я попытался уничтожить страницу при перезагрузке, применив @HostListener("window:beforeunload")
к ngOnDestroy
, но проблема, с которой я сталкиваюсь, заключается в том, что мне нужно, чтобы страница была уничтожена ПОСЛЕ ее был обновлен и затем переход на другую страницу.
Эта демонстрация показывает мою проблему, и вот шаги по ее воспроизведению:
- Доступ к приложению: приложение автоматически загружается на родительскую страницу, которая является первой и единственной вкладкой в демо-версии
- Перейдите на дочернюю страницу, нажав кнопку «Перейти к дочернему элементу»: дочерняя страница откроется
- Перезагрузите дочернюю страницу, перейдя на бар адрес в браузере в приложении, щелкнув внутри него, а затем нажмите клавишу ввода (не используйте кнопку перезагрузки, потому что это перезагружает приложение и указывает непосредственно на родительскую страницу)
- Перейти к родительскую страницу, нажав кнопку «Перейти к родителю»
На последнем шаге консоль не регистрирует, что дочерняя страница уничтожена, и при повторном обращении к ней из родительской страницы не логируй ни что он инициализирован. Это означает, что дочерняя страница не уничтожена.
Обратите внимание, что в случае, когда дочерняя страница не обновляется и при нажатии кнопки «Перейти к родителю» дочерний компонент уничтожается (ngOnDestroy
вызывается), а затем создается / инициализируется при следующем доступе.