【问题标题】:Subscriber is triggering even it is unsubscribed即使取消订阅,订阅者也会触发
【发布时间】:2019-12-30 16:12:30
【问题描述】:

我在 5 个页面中的每个页面中都有一个事件发射器和 5 个订阅者(第 1 页、第 2 页、第 3 页、第 4 页、第 5 页)

我在 ngOnInit() 上订阅了该事件并在 ngOnDestroy() 上取消订阅,

这些页面实际上是路由页面,即一次只会将一个页面加载到 DOM 中

所以我的用例是 最初我转到第 1 页并触发了事件发射器 然后我移动到第 2 页再次触发了事件发射器 我可以观察到这个事件发射器在第 1 页和第 2 页都触发了订阅,

怎么可能,因为我已经退订了, 我该如何解决这个问题?

ngOnInit() {
this.translationService = this.sharedService.language_english.subscribe(
      data => {
        console.log(data)
        this.trigger_translation_module(data);
      }
    );
}

 ngOnDestroy() {

    this.translationService.unsubscribe();
  }

【问题讨论】:

    标签: typescript rxjs angular7 subscription eventemitter


    【解决方案1】:

    我相信角度路由更改不会调用销毁生命周期方法。

    以下问题中讨论了解决方法 https://github.com/NativeScript/nativescript-angular/issues/1049

    如果您不需要根据页面专门更改服务,您可以简单地在 app.component.ts 构造函数中初始化它,而不是在每个单独的页面中进行初始化

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-05
      • 1970-01-01
      • 2017-01-24
      • 1970-01-01
      • 1970-01-01
      • 2021-02-25
      相关资源
      最近更新 更多