Я хотел бы отправить действие, когда селектор меняет значение. поэтому я передаю селектор с подпиской, чтобы избежать передачи наблюдаемого

selectedSchedulingsOnPopup$ = this.store.pipe(select(selectSchedulingsByBranch));

this.store.dispatch(new GetDirectionsOnGraph(this.selectedSchedulingsOnPopup$.subscribe()))

Я получаю эту ошибку

(property) BranchKpisComponent.selectedSchedulingsOnPopup$: Observable<ISchedules>
Argument of type 'Subscription' is not assignable to parameter of type 'ISchedules'.
  Index signature is missing in type 'Subscription'.
0
infodev 20 Дек 2019 в 18:40

1 ответ

Лучший ответ

Весь код неверен

this this.selectedSchedulingsOnPopup$.subscribe() вернет подписку, а не значение

также каждый раз, когда вы отправляете действие, вы создаете новую подписку, что приведет к неожиданному поведению и утечке памяти

Вы можете отдельно подписаться на это один раз (например, ngOnInit)

this.selectedSchedulingsOnPopup$
.subscribe(value => {
  this.selectedSchedulingsOnPopupValue = value;
})

тогда позже

this.store.dispatch(new GetDirectionsOnGraph(this.selectedSchedulingsOnPopupValue))

Примечание: не забудьте отписаться от this.selectedSchedulingsOnPopup$, иначе произойдет утечка памяти

1
Reza 20 Дек 2019 в 18:29