Доступ к хранилищу из эффекта с помощью ngrx

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

Я читал об операторе withLatestFrom, но у меня его не получилось.

Как я могу получить доступ к магазину в моем эффекте filterTransports?

constructor(private store$: Store<fromFundamentalData.State>) {}


@Effect() filterTransports$ = this.actions$.pipe(
    ofType(fundamentalDataActions.FundamentalDataTypes.FilterTransports),
    mergeMap((action: fundamentalDataActions.FilterTransports) => this.filterTransportsService.filter(action.payload, action).pipe(
        map((transports: any) => (new fundamentalDataActions.FilterSuccess(transports))))
    ));

1 ответ

Вы можете сделать это как:

@Effect()
shipOrder = this.actions.pipe(
  ofType<ShipOrder>(ActionTypes.ShipOrder),
  map(action => action.payload),
  withLatestFrom(this.store.pipe(select(getUserName))),
  map([payload, username] => {
    ...
  })
)

Для получения дополнительной информации см. Начало использования ngrx/ Effects для этого

Другие вопросы по тегам