发布前Redux Observable Epic调度动作

时间:2018-07-21 18:14:13

标签: javascript react-redux redux-observable

我正在尝试创建一个史诗般的史诗,它将在ajax POST请求之前调度一个动作。我该怎么办?

const epicUsers = (action$) => action$.pipe(
    ofType(ADD_NEW_USER),
    //would like to do the following, but cannot since it was deprecated
    do(dispatch(startSubmit("SignupForm"))), //deprecated
    mergeMap((action) =>
        startSubmit("signupForm") b
        postNewUser$(action).pipe(
            map(() => push("/login")),  //router redirects
            catchError((error) => of(stopSubmit("SignupForm", error.xhr.response.errors))) //emit errors to form
        )
    )
)
仅供参考:startSubmit()函数是一个动作生成器(为redux创建动作) 另外,postNewUser $()返回ajax.post()可观察的

1 个答案:

答案 0 :(得分:-1)

我发现您无法在史诗中的ajax调用之前调度操作。在到达史诗级电影之前,您必须先分派动作。史诗可以接受一个动作并在最后输出1个或多个动作。但是,由于redux-oberservable更新,它无法在结束前发出操作。

的示例
onSubmit(dispatch) {
    dispatch(action before epic)
    dispatch(action that goes into epic)
}