【发布时间】:2019-02-13 00:31:00
【问题描述】:
我在 Ionic V4 应用程序的主页和第一个子路由中都有可观察的订阅。作为一种好的做法,我在两个页面中都使用 ngOnDestroy 方法,并在每个页面中分别取消订阅这些订阅。
我第一次离开主页返回时,主页中的ngOnDestroy方法被调用。随后,每当我离开主页时,都会调用 ngOnDestroy。但是,第一个子路由中的 ngOnDestroy 可以正常工作 - 我可以路由到后续子路由,并且当我返回时不会调用 ngOnDestroy,但是当我路由回家时,会运行第一个子 ngOnDestroy。
这在运行ionic serve 时不会出现太多,但是在进行 iOS 生产构建时,ionic cordova ios --prod --aot 并在我的 iSO 模拟器设备上运行时会出现此行为。
我之前曾问过related question,但似乎 ionViewDidLeave 即使在路由到子节点时也会运行,并且永远不会运行 ionViewDidLeave。 V4 documentation 建议还是使用 Angular 生命周期钩子。
对此有解释吗?我什至需要主页 ngOnDestroy 吗?感谢您的任何意见。
【问题讨论】: