将错误响应拦截器放在 redux-axios-middleware 上
Posted
技术标签:
【中文标题】将错误响应拦截器放在 redux-axios-middleware 上【英文标题】:Put error response interceptor on 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);
;
但仍然没有显示任何内容。
有什么办法吗?
【问题讨论】:
【参考方案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()
【讨论】:
以上是关于将错误响应拦截器放在 redux-axios-middleware 上的主要内容,如果未能解决你的问题,请参考以下文章