Ответ
Да, возвращать данные запроса в action
— это нормальная практика, особенно в Redux или аналогичных библиотеках. Это позволяет обрабатывать результат асинхронного запроса в редьюсере или компоненте.
Пример с Redux Thunk:
const fetchUser = (userId) => async (dispatch) => {
const response = await fetch(`/api/users/${userId}`);
const data = await response.json();
dispatch({ type: 'FETCH_USER_SUCCESS', payload: data });
return data; // Возвращаем данные для дальнейшей обработки
};
// В компоненте можно использовать так:
dispatch(fetchUser(1)).then((userData) => {
console.log('User data:', userData);
});
Плюсы:
- Удобно для цепочки действий (
then
/await
). - Позволяет использовать данные сразу после диспатча.
Минусы:
- Может усложнить логику, если злоупотреблять.
- Не всегда нужно, если данные хранятся в сторе.
Используй, когда нужен доступ к данным вне стора (например, для навигации или локального состояния).