редукционные эпические пожары только один раз - PullRequest
0 голосов
/ 01 ноября 2018

Я видел соответствующий пост об этой проблеме, но мои настройки немного отличаются, поэтому у меня пока нет решения.

У меня есть этот создатель действия и эпопея:

export const postToSendEmail = (emailBody: any) => ({ type: EMAIL.POST_EMAIL, payload: emailBody });

export const sendEmailEpic = (action$: any) => action$.pipe(
  ofType(EMAIL.POST_EMAIL),
  mergeMap((action: any) =>
    return Observable.ajax({
        url: "http://...",
        body: action.payload,
        ...
    }).flatMap(() => of(sendEmailDone()))
  ),
  catchError((error: any, source: any) => {
    // this doesn't work
    of(handleError(error));
    // this restarts the epic
    return source;
  })
);

В компоненте реагирования у меня есть кнопка, которая просто вызывает actionCreator:

<button onClick={this.sendEmail}>send email</button>

sendEmail() {
    this.props.dispatch(postToSendEmail({ test: "test" }));
}

Щелчок по кнопке в первый раз работает нормально, и я вижу вызов API в сети, но повторное нажатие на нее никогда не срабатывает. Почему это так?

EDIT:

Я обновил улов, но теперь, как мне отправить нужное мне действие? Использование of (handleError), похоже, на самом деле не вызывает его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...