我正在尝试创建一个史诗般的史诗,它将在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()可观察的
答案 0 :(得分:-1)
我发现您无法在史诗中的ajax调用之前调度操作。在到达史诗级电影之前,您必须先分派动作。史诗可以接受一个动作并在最后输出1个或多个动作。但是,由于redux-oberservable更新,它无法在结束前发出操作。
的示例
onSubmit(dispatch) {
dispatch(action before epic)
dispatch(action that goes into epic)
}