作者:伏染善 | 来源:互联网 | 2023-02-06 08:25
我有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);
};
}
但仍然没有显示任何东西.
任何解决方案?
1> Miroslav Gen..:
这是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()