【问题标题】:Put error response interceptor on redux-axios-middleware将错误响应拦截器放在 redux-axios-middleware 上
【发布时间】:2017-09-17 23:39:42
【问题描述】:

https://github.com/svrcekmichal/redux-axios-middleware 有问题。

我想设置拦截器响应(错误)。但无法成功设置。

这是我的代码:

function interceptorResponse({ dispatch, getState, getAction }, response) {
    console.log(response);
}

export const client = axios.create({
    baseURL: API_URL,
    headers: {
        Accept: 'application/json',
    },
});

export const clientOptions = {
    interceptors: {
        request: [interceptorRequest],
        response: [interceptorResponse],
    },
};

console.log(response) 仅在响应为 200 时才响应。如何将其设置为接受错误响应?

我试过这样设置

 function interceptorResponse({ dispatch, getState, getAction }) {
    return response => response.data, (error) => {
        const meta = error.response.data.meta;

        const { code, status } = meta;

        console.log(meta);
    };
}

但仍然没有显示任何内容。

有什么办法吗?

【问题讨论】:

    标签: reactjs react-redux axios


    【解决方案1】:

    这是一个使用 ES6 的示例:

    import axios from 'axios'  
    import axiosMiddleware from 'redux-axios-middleware'    
    
    const options = {
            // not required, but use-full configuration option
            returnRejectedPromiseOnError: true,
            interceptors: {
                request: [
                    ({ getState, dispatch }, config) => {
                       // Request interception
                      return config
                    }
                ],
                response: [
                {
                  success: ({ dispatch }, response) => {
                    // Response interception
                    return response
                  },
                  error: ({ dispatch }, error) => {
                    // Response Error Interception 
                    return Promise.reject(error)
                  }
                }
              ]
            }
    }    
    export default axiosMiddleware(axios, options)
    

    注意创建的中间件要传给createStore()

    【讨论】:

      猜你喜欢
      • 2017-05-28
      • 2018-11-27
      • 2022-01-25
      • 2020-09-25
      • 2018-09-27
      • 1970-01-01
      • 1970-01-01
      • 2018-04-25
      相关资源
      最近更新 更多