withLatestFrom в действительности неправильный тип - PullRequest
1 голос
/ 28 июня 2019

У меня есть следующий селектор:

export const selectMissionState: MemoizedSelector<object, State> = createFeatureSelector<State>('missions');

export const selectAll: (state: object) => Array<IMission> = featureAdapter.getSelectors(selectMissionState).selectAll;

По своему действию я делаю следующее =>

  @Effect()
  applyMissionReroute$ = this.actions$.pipe(
    ofType<featureActions.ApplyMissionReroute>(featureActions.ActionTypes.ApplyMissionReroute),
    withLatestFrom(MissionsStoreSelectors.selectAll()),
    switchMap(([action, state]) => {})
  );

Но я столкнулся с проблемой, хотя мой selectAll должен вернутьМассив (это то, что говорит компилятор, когда я заканчиваю, мое [действие, состояние] - это просто IMission.

Что такое Мое состояние - это просто var IMission, а не массив?

1 Ответ

1 голос
/ 28 июня 2019

Вы должны позвонить withLatestFrom либо с this.store для получения всего состояния магазина, либо с this.store.pipe(select(...selector...)) только для части состояния.

С этим изменением ниже, вы получите результат селектора внутри аргумента selectAll.

@Effect()
applyMissionReroute$ = this.actions$.pipe(
  ofType<featureActions.ApplyMissionReroute
    (featureActions.ActionTypes.ApplyMissionReroute),
  withLatestFrom(this.store.pipe(select(MissionsStoreSelectors.selectAll))),
  switchMap(([action, selectAll]) => {
    ..
  })
);

Надеюсь, это поможет вам.

...