rxjs ожидает совместимые типы действий для наблюдаемых в потоке

Я использую redux-observable подписаться на действия и выполнить некоторые действия:

const fetchClientsEpic = (action$) =>
  action$.ofType(fetchClients).switchMap(() =>
    Observable.ajax
      .getJSON(API.GET_CLIENTS)
      .map(API.parseResponse)
      .map((clients: IClient[]) =>
        map(clients, (client, index) => ({
          key: index,
          ...client,
        })),
      )
      .mergeMap((clients) => [
        fetchClientsSuccess(clients),
        closeGlobalOverlay(),
      ])
      .catch(() => Observable.of(closeGlobalOverlay()))
      .startWith(showSpinnerOverlay()),
  );

//I define actions like this:

export const showGlobalOverlay: SimpleActionCreator<IGlobalOverlayStateProps> = createAction('SHOW_GLOBAL_POPUP');

export const closeGlobalOverlay: EmptyActionCreator = createAction(
  'CLOSE_GLOBAL_POPUP',
);

export const showSpinnerOverlay = () =>
  showGlobalOverlay({ popup: GlobalOverlayPopup.Spinner });

А также SimpleActionCreator происходит от redux-act,

Все отлично работает но в эпическом потоке .startWith требуется последний наблюдаемый тип. Что означает (насколько я понимаю) тип closeGlobalOverlay действие (EmptyActionCreator который возвращается Action<null, null>). общий SimpleActionCreator тип возвращает тип Action с моим типом полезной нагрузки.

Я не могу понять, как это должно быть решено.

0 ответов

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