现在我有以下架构 . React Redux在前端,还有Rails api . 在我的应用程序状态(Redux)中,我存储用户状态(授权与否) . 当我通过提取发出任何请求时,我总是处理相同的错误并发送相同的标头 .
例如:如果我有来自服务器的未经授权的错误,我总是派遣reducer,它将用户的状态更改为未授权 .
在一个地方处理这些错误的最佳方法是什么?
谢谢!
首先为所有动作减少器维护一个商店,为用户身份验证状态制作动作减少器 . 要在一个地方处理错误,请在“services”文件夹中创建一个axios服务(如果您在HTTP中使用axios) . 服务可以是这样的
import axios from 'axios'; var AxiosService = { getMethod, postMethod, } function getMethod(url, successCallBack, errorCallBack) { axios.get(url, { header: header }).then((data => { return successCallBack(data); })).catch(err=>{ //IF ERROR TYPE IS 401 UNAUTHORIZED //DISPATCH HERE }) } function postMethod(url, obj, successCallBack, errorCallBack) { return axios.post(url, obj, { header: header }).then((data => { return successCallBack(data); })).catch(err=>{ //IF ERROR TYPE IS 401 UNAUTHORIZED //DISPATCH HERE }) } export default AxiosService;
在获取任何组件时,只需导入AxiosService即可
import AxiosService from '..address' AxiosService.getMethod('my/rails/backend',data=>{},err=>{})
1 回答
首先为所有动作减少器维护一个商店,为用户身份验证状态制作动作减少器 . 要在一个地方处理错误,请在“services”文件夹中创建一个axios服务(如果您在HTTP中使用axios) . 服务可以是这样的
在获取任何组件时,只需导入AxiosService即可