首页 文章

来自React Redux中的fetch的错误

提问于
浏览
1

现在我有以下架构 . React Redux在前端,还有Rails api . 在我的应用程序状态(Redux)中,我存储用户状态(授权与否) . 当我通过提取发出任何请求时,我总是处理相同的错误并发送相同的标头 .

例如:如果我有来自服务器的未经授权的错误,我总是派遣reducer,它将用户的状态更改为未授权 .

在一个地方处理这些错误的最佳方法是什么?

谢谢!

1 回答

  • 1

    首先为所有动作减少器维护一个商店,为用户身份验证状态制作动作减少器 . 要在一个地方处理错误,请在“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=>{})
    

相关问题