В настоящее время я подписываюсь на соответствующие части моего состояния в компонентах:
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 считаться плохой практикой?Потому что это, вероятно, есть - любая идея, как я мог бы очистить подписки, не следуя этому подходу?Спасибо!