К сожалению, я не могу вызвать handleApiErrors из блока catch error.Функция не вызывается, строка кода handleApiErrors (ошибка, «Данные не могут быть получены») игнорируется)
Кажется, что двойное использование 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));
};