Нет ничего плохого в диспетчерских действиях после await
ing. Фактически, это был go -подход в течение очень долгого времени, особенно когда код не сильно изменился. вносить изменения и что это не самый гибкий подход. То, что люди сейчас делают, это
// actions.js
export const retrieveData = () => () => fetch(`/url`).then(d => d.json())
export const populateData = (data) => ({ type: 'MODULE_POPULATE_DATA', data })
// inside the component
const dispatch = useDispatch()
useEffect(() => {
const loadData = async () => {
const { data } = await dispatch(retrieveData())
dispatch(populateData(data))
}
loadData()
}, [])
Этот другой подход приводит к некоторому дублированию кода (что нормально), но имеет доступ ко всему внутри компонента: реквизитам, ссылкам, состоянию, запомненным значениям. и др c. без необходимости делать странные вещи, чтобы передать их.