Я пытаюсь получить значение селектора, сохранить его в массиве переменных и передать этот массив успешному действию в файле account.effect.ts с помощью ngrx
Файл account.effect.ts
fetchUserInfo$ = createEffecct(() =>
this.actions$.pipe(
ofType(AccountActions._fetchAccountInfo),
switchMap(({accountNumber}) =>
this.accServvice.getAccInfo(accountNum).pipe(
map((accountInfo: AccType) =>
AccountActions.loadUserInfoSuccess({data: accountInfo}),
),
catchError((error) =>
of(AccountActions.userDataFails({error}))
)
)
)
)
)
В приведенном выше файле я импортировал селектор, и вы можете получить к нему доступ через this.store.select (FromAcc.getSelectedAccInfo). Я хочу получить доступ к значению селектора FromAcc.getSelectedAccInfo и добавить еще одно значение, которое я получу от службы, а затем отправлю его в действие AccountActions.loadUserInfoSuccess. Я новичок в ngrx. Скажите, пожалуйста, как я могу это сделать.
1 ответ
вы можете попробовать решение ниже
fetchUserInfo$ = createEffecct(() =>
this.actions$.pipe(
ofType(AccountActions._fetchAccountInfo),
// below 2 lines updated
withLatestFrom(this.store.select(FromAcc.getSelectedAccInfo)),
switchMap(([accountNumber, selectedAccInfo]) =>
this.accServvice.getAccInfo(accountNum).pipe(
map(([accountInfo: AccType, ) =>
AccountActions.loadUserInfoSuccess({data: accountInfo}),
),
catchError((error) =>
of(AccountActions.userDataFails({error}))
)
)
)
)
)