目前,这是我在组件中订阅状态的相关部分的方式:
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会被视为不良做法吗?因为可能是-您知道如何在不遵循这种方法的情况下清理订阅吗?谢谢!