Mar*_*eco 5 navigation ionic4 angular7
我有一个 Ionic 4 应用程序,以及带有自定义组件的 Angular 7。在这个组件中,我实现了对事件的订阅。活动发布后,我毫无问题地收到消息。如果我离开该组件并再次返回该组件,如果发布了事件,我会收到该消息两次。似乎同一控制器的前一个实例没有被销毁(如果 ngOnDestroy 被触发 - 我已经插入了一个 console.log)。如果我重复此操作(离开并返回),我会收到 3 条消息,然后是 4 条,依此类推。
所以,我的问题是:该组件是被破坏还是保留在内存中?
我希望每次进入组件时都会有一个新实例,并且所有先前的实例都会被销毁。
从您的描述来看,您的订阅似乎独立于组件的生命周期。
如果您不取消订阅,它将继续监听并在每次收到新事件时触发。即使 Angular 删除了旧的组件实例并且不再使用它,浏览器也会将其保留在内存中,以便能够为事件处理程序提供上下文。
您是否尝试在 ngOnDestroy 方法中显式取消订阅?
归档时间: |
|
查看次数: |
7479 次 |
最近记录: |