有咩有最佳实践呢
如何在redux中处理错误和loading这种情况呢?
SundayPig
#3
目前我是这么处理loading和异常的,但感觉思路不对,如果有一些异步操作触发了多次请求或者多次error,这时候全局dispacth就重复了,甚至有一些错误并不是http请求引起的应当如何处理,求大佬讲解下思路
axios.interceptors.response.use(
response => {
//status为200-300
store.dispatch(hideLoading())
const result = response.data
if (result.code === 0) {
return result.data
} else {
const error = new Error()
error.code = result.code
error.message = result.message
error.response = response
return Promise.reject(error)
}
},
error => {
store.dispatch(hideLoading())
const { response } = error
if (typeof (response) == 'undefined') {
error.message = '连接超时,请检查网络'
return Promise.reject(error)
}
if (response.data.status === 401) {
store.dispatch(push('/login'))
}
const _error = new Error()
_error.code = response.status
_error.message = response.data.message
_error.response = response
return Promise.reject(_error)
}
)
meibin08
#9
可以写一些通用的提示组件啊,toast
有兴趣可以看一下,我写的一些demo,公司项目中也是这么做的 https://github.com/meibin08/react-redux
https://github.com/meibin08/react-redux