Я пытаюсь "избыточное обещание".
Когда в потоке нет ошибок, мой код работает правильно. Но допустим, что API не работает или у меня есть опечатка в URL. В этих случаях я ожидаю, что исправлю ошибку должным образом.
Это API
: https://jsonplaceholder.typicode.com/users
(во фрагмент я добавляю случайный текст в конце, чтобы получить 404)
Создатель действий
export async function fetchUsers() {
const request = await axios
.get('https://jsonplaceholder.typicode.com/userssdfdsfdsf')
.catch(error => console.log('ERROR', error))
return {
type: FETCHING_USERS,
payload: request
};
}
Редуктор
export default (state = [], action) => {
switch (action.type) {
case FETCHING_USERS:
return [...state, ...action.payload.data]
default:
return state
}
}
Я вижу ошибку, зарегистрированную в консоли
ERROR Error: Request failed with status code 404
Но после отправки действия его полезная нагрузка равна undefined
.
action {type: "FETCHING_USERS", payload: undefined}
Я не знаю, где лучше всего это сделать: создатель действий, редуктор и т. Д. Я не должен проверять, находится ли полезная нагрузка в редукторе, и, если нет, возвращать состояние или ничего не делать. Я хочу понять, какой из подходов лучше всего с этим справиться.