Reactjs С;从React Redux中获取的atch错误

Reactjs С;从React Redux中获取的atch错误,reactjs,redux,fetch,Reactjs,Redux,Fetch,现在我有了以下架构。React Redux在前端,还有Rails api。在我的应用程序状态(Redux)中,我存储用户状态(已授权或未授权)。当我通过fetch发出任何请求时,我总是处理相同的错误并发送相同的头 例如:如果我有来自服务器的未经授权的错误,我总是调度reducer,这会将用户的状态更改为未经授权 在一个地方处理这些错误的最佳方法是什么 谢谢 首先为所有操作缩减器维护一个存储,为用户身份验证状态创建一个操作缩减器。 要在一个位置处理错误,请在“服务”文件夹中创建axios服务(如果

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

例如:如果我有来自服务器的未经授权的错误,我总是调度reducer,这会将用户的状态更改为未经授权

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


谢谢

首先为所有操作缩减器维护一个存储,为用户身份验证状态创建一个操作缩减器。 要在一个位置处理错误,请在“服务”文件夹中创建axios服务(如果您使用的是axios For HTTP)。 服务可以是这样的

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;
在任何组件中,在获取时,只需像导入AxioService一样

import AxiosService from '..address'
AxiosService.getMethod('my/rails/backend',data=>{},err=>{})

当api调用以401失败时,您能建议如何检查catch块中的错误类型吗?