将组件范围传递给存储服务是不好的做法-Angular

时间:2019-03-21 15:26:05

标签: angular redux ngrx

目前,这是我在组件中订阅状态的相关部分的方式:

 this.store.pipe(
      select((state: any) => state.data.relevantInfo),
      untilDestroyed(this))
      .subscribe((relevantInfo: RelevantInfo) => 
        this.doSomethingWithInfo(relevantInfo));

untilDestoryed(this)是一个npm软件包,在销毁组件时会自动取消订阅。

由于我在不同组件中订阅了该状态的相同部分,因此我正在考虑创建一个存储服务,该服务将返回相应的可观察到的...

  selectRelevantInfo(scope) {
    return this.store.pipe(select((state: State) => state.data.relevantInfo),
      untilDestroyed(scope));
  }

...并这样称呼它:

this.storeService.selectRelevantInfo(this)
  .subscribe((relevantInfo: RelevantInfo) =>                        
      this.doSomethingWithInfo(relevantInfo));

现在我的问题是,将范围传递给StoreService会被视为不良做法吗?因为可能是-您知道如何在不遵循这种方法的情况下清理订阅吗?谢谢!

0 个答案:

没有答案