reactjs - 将错误响应拦截器放在 redux-axios-middleware 上

标签 reactjs react-redux axios

我对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);
    };
}

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

有什么解决办法吗?

最佳答案

这是 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()

关于reactjs - 将错误响应拦截器放在 redux-axios-middleware 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43534740/

相关文章:

reactjs - 如何解决 "element.getBoundingClientRect is not a function"

reactjs - React Redux 处理大数据

javascript - 需要使用 Vue.js 访问对象数组

javascript - 状态未初始化为初始状态

ajax - 仅使用客户端ajax请求通过mailgun api发送邮件

docker - 在Nginx反向代理后面的docker-compose服务中请求时axios ECONNREFUSED

javascript - 在 React 中更新数组

reactjs - 将 PropType 与 Redux 组件结合使用

reactjs - HandlingChange 输入 REACTJS + TypeScript 错误

javascript - 防止 react-redux 在状态改变时重新渲染整个页面