Я пытаюсь создать эффект для angular с помощью NgRx 12. Мне нужно использовать данные из нескольких селекторов, но параметры одного селектора (isLoading) исходят из первого селектора. Можно ли получить данные отсюда?
withLatestFrom(
this.store.pipe(select(fromA.getFormData)), // need to get data from here
this.store.pipe(select(fromA.getFiles)),
this.store.pipe(select(fromB.isLoading(formData.someValue // to here)),
(action: Action, formData: any, files: Array<Attachment>) => ({ formData, files, isLoading })
),
mergeMap(({ formData, files, isLoading }) => {
...
Спасибо раньше!
Вероятно, есть лучший способ, вы можете сделать это так, если вы также хотите, чтобы данные формы использовались в mergeMap
withLatestFrom(
this.store.pipe(select(fromA.getFormData)).pipe(
switchMap((theFormData) => this.store.select(fromB.isLoading(theFormData)))
),
this.store.select(fromA.getFiles),
this.store.pipe(select(fromA.getFormData))
),
mergeMap([theLoadingValue, theFiles, theFormValue] => {...})
Если вам не нужны данные формы, это будет просто:
withLatestFrom(
this.store.pipe(select(fromA.getFormData)).pipe(
switchMap((theFormData) => this.store.select(fromB.isLoading(theFormData)))
),
this.store.select(fromA.getFiles)
),
mergeMap([theLoadingValue, theFiles] => {...})