Redux史诗级射击仅触发一次

时间:2018-10-31 21:21:19

标签: react-redux rxjs redux-observable

我看到了有关此问题的相关文章,但是我的设置有点不同,所以我还没有解决方案。

我有这个动作的创造者和史诗:

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;
  })
);

在react组件中,我有一个仅调用actionCreator的按钮:

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

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

第一次单击该按钮可以正常工作,我在网络中看到api调用,但是第二次单击则永远不会触发。为什么会这样?

编辑:

我更新了渔获,但是现在,我该如何调度我需要的动作?似乎没有实际使用of(handleError)。

0 个答案:

没有答案