Обмен данными между угловыми редукторами

#angular #redux #ngrx

#angular #сокращение #ngrx

Вопрос:

В моем приложении возникла ситуация, когда мне нужно обмениваться данными между редукторами.

 State:
{
   ...
   itemDetails,
   settings
}
  

В itemDetails хранилище мне нужно обновить некоторые данные, и для этого мне нужны некоторые данные из settings хранилища.

(Я также использую фасады.)

Есть ли возможность обмениваться данными между редукторами, как redux-thunk в react или что-то в этом роде?

У меня также есть два других варианта для этого:

  1. Отправьте эти данные настроек в метод фасада в качестве параметра функции.
  2. Вводите settingsFacades itemDetailsFacades и отправляйте эти данные непосредственно в действие.

Но мне любопытно, есть ли более элегантный способ обмена данными между редукторами.

Ответ №1:

Обычно вы можете просто получить доступ к своему хранилищу, чтобы получить данные. Например, в эффекте это будет выглядеть так

 constructor(private store$: Store<AppState>) {}

@Effect() specialEffect$ = this.actions$
    .ofType(SOME_ACTION)
    .withLatestFrom(this.store$)
    .map(([action: Action, storeState: AppState]) => {
      // Do something ... use selectors, dispatch action etc.
    });
  

Комментарии:

1. О, извините. Я забыл упомянуть. Я использую только фасады и больше не использую эффекты (я возвращаю результат непосредственно в фасадах).

2. Эффект — это только один пример. Вы можете просто внедрить свое хранилище для доступа к нужным вам данным. Итак, в вашем фасаде введите свое хранилище, используйте селектор или с помощью latestfromoperator в observables и извлеките нужные вам данные