Reactjs 当服务器发送错误状态时,代码停止工作
我不熟悉rxjs可观测系统。我正在尝试简单的登录页面应用程序。当我发送正确的凭据时,代码工作正常,加载微调器也会停止渲染。当凭据无效时,代码将停止工作,spinner也将保留在页面上。我必须重新加载页面才能使其再次工作。 代码如下:Reactjs 当服务器发送错误状态时,代码停止工作,reactjs,redux,rxjs,observable,redux-observable,Reactjs,Redux,Rxjs,Observable,Redux Observable,我不熟悉rxjs可观测系统。我正在尝试简单的登录页面应用程序。当我发送正确的凭据时,代码工作正常,加载微调器也会停止渲染。当凭据无效时,代码将停止工作,spinner也将保留在页面上。我必须重新加载页面才能使其再次工作。 代码如下: import constants from "../constants"; import "rxjs"; import { ajax } from "rxjs/observable/dom/ajax"; import { loginBody } from "../u
import constants from "../constants";
import "rxjs";
import { ajax } from "rxjs/observable/dom/ajax";
import { loginBody } from "../utils/bodyCreator";
import {
showLoadingSpinner,
hideLoadingSpinner
} from "../actions/LoadingOverlayActions";
const sessionCreated = payload => ({
type: constants.sessionCreated,
response: payload
});
export const tryLoginEpic = (action$, store) =>
action$
.ofType(constants.tryLogin)
.map(() => store.dispatch(showLoadingSpinner()))
.mergeMap(action =>
ajax
.post(constants.loginEndPoint, loginBody(store.getState()), {
"Content-Type": "application/json"
})
.map(data => store.dispatch(sessionCreated(data.response)))
.map(() => store.dispatch(hideLoadingSpinner()))
.catch(err => store.dispatch(hideLoadingSpinner()))
);
请帮助我如何做到这一点,这是错误的代码
谢谢您需要以不同的方式使用
.catch
操作符。例如,返回空的Observable(或其他操作),类似于:
.catch(错误=>{
dispatch(hideLoadingSpinner());
return-Observable.empty();
})
见有关的正式文件