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

ssu*_*hat 6 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],
    },
};
Run Code Online (Sandbox Code Playgroud)

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);
    };
}
Run Code Online (Sandbox Code Playgroud)

但仍然没有显示任何东西.

任何解决方案?

Mir*_*nov 6

这是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)
Run Code Online (Sandbox Code Playgroud)

请注意,创建的中间件应传递给createStore()