Это плохая практика для передачи области компонентов в сервис магазина - Angular - PullRequest
0 голосов
/ 21 марта 2019

В настоящее время я подписываюсь на соответствующие части моего состояния в компонентах:

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

...