【发布时间】:2019-01-20 23:57:00
【问题描述】:
不幸的是,我无法从 catch 错误块中调用 handleApiErrors。函数没有被调用,这行代码handleApiErrors(error, 'Data could not be retrieved')被忽略)
dispatch 的双重使用似乎导致了问题,但根据 thunk 文档,它应该可以工作
const getInitialData = () => (dispatch) => {
getBookList()
.then((books) => {
dispatch(fetchBooksSuccess(books));
})
.catch((error) => {
handleApiErrors(error, 'Data could not be retrieved')
});
};
const handleApiErrors = (error, userMessage = '') => (dispatch) => {
const { response, message } = error;
let errorMessage = '';
switch (response.status) {
case 401:
errorMessage = 'You are not authenticated';
break;
case 403:
errorMessage = 'You are not authorized to access this ressource';
break;
case 500:
errorMessage = `${userMessage} There was an internal error, please try again`;
break;
case 503:
errorMessage = `${userMessage} The network connection is unavailable at the moment`;
break;
default:
errorMessage = message;
}
dispatch(setApiErrors(errorMessage));
};
【问题讨论】:
标签: reactjs redux redux-thunk