Reactjs 在RxJS+中调度多个操作;Redux+;Axios

Reactjs 在RxJS+中调度多个操作;Redux+;Axios,reactjs,react-redux,rxjs,rxjs6,redux-observable,Reactjs,React Redux,Rxjs,Rxjs6,Redux Observable,我正在创建一个登录epic并分派多个操作,在“CatchError”中分派多个操作很好,但会产生一个错误“操作必须是普通对象。使用自定义中间件执行异步操作。”当分派“else”块中可观察到的操作时 export const loginUserEpic = action$ => action$.pipe( ofType(LOGIN_USER), switchMap(({ payload: { email, password } }) => { const b

我正在创建一个登录epic并分派多个操作,在“CatchError”中分派多个操作很好,但会产生一个错误“操作必须是普通对象。使用自定义中间件执行异步操作。”当分派“else”块中可观察到的操作时

export const loginUserEpic = action$ =>
action$.pipe(
    ofType(LOGIN_USER),
    switchMap(({ payload: { email, password } }) => {
      const body = {
        email: email,
        password: password
      };

  return from(axios.post(`${process.env.REACT_APP_BACKEND}/api/auth/login`, body, config)).pipe(
    map(response => {
      if (response.data.user.is_active) {
        return { type: "LOGIN_SUCCESS", payload: response.data };
      } else {
        return of(
          { type: "USER_LOADING" },
          { type: "TOGGLE_MODAL" },
          updateModalData(modalTypes.EMAIL_SENT, "")
        );
      }
    }),
    catchError(err =>
      of({ type: "LOGIN_FAIL" }, createAlert(alertTypes.RED_ALERT, err.data, err.status))
    )
  );
}));

我使用了mergemap,这样我就可以返回一个可观察的:

    export const loginUserEpic = action$ =>
  action$.pipe(
    ofType(LOGIN_USER),
switchMap(({ payload: { email, password } }) => {
  const body = {
    email: email,
    password: password
  };

  return from(axios.post(`${process.env.REACT_APP_BACKEND}/api/auth/login`, body, config)).pipe(
    mergeMap(response => {
      if (response.data.user.is_active) {
        return of({ type: "LOGIN_SUCCESS", payload: response.data });
      } else {
        return of(
          { type: "USER_LOADING" },
          { type: "TOGGLE_MODAL" },
          updateModalData(modalTypes.EMAIL_SENT, "")
        );
      }
    }),
    // takeUntil(actions$.pipe(ofType(CANCEL))),
    catchError(err =>
      of({ type: "LOGIN_FAIL" }, createAlert(alertTypes.RED_ALERT, err.data, err.status))
    )
  );
})

))

嗯,我对
react redux
不太熟悉,但是您是否尝试过从([action1,action2])返回一系列动作,比如
?是的,不幸的是,同样的问题听起来像
createAlert
可能正在创建一个不可序列化的动作?可能
错误。数据
不可序列化吗?但我不熟悉可观测的物体,所以我可能完全错了。这部分工作正常,实际上,触发错误的是“else”块。已尝试从/或从可观察对象返回,并且仅返回没有可观察对象的一系列操作,错误始终存在。它只在返回一个动作时起作用,就像上面的if块一样