Ну я чисто в экспериментальных целях так делать пробовал, без редакса.
В общем не так уж сложно.
Я все функции которые устанавливают значения стэйта в компоненте, типа setValue, вот в эту функцию которая запрос делала в качестве колбэков передавал.
т.е. внутри компонента в юзЭффект только вызов шел этой функции с передачей в нее колбэков.
А там уже они в определенной последовательности вызывались типа:
setIsLoading(true);
const response = await axios(...);
setIsLoading(false);
setData(
response.data);
вот эти setIsLoading и setData из компонента пробрасывались.