setState] = useApiState();
const request = (payload: TRequest) => {
setState('loading');
return asyncFunc(payload)
.then((response) => {
if (state.isCanceled) {
return;
}
setResult(response);
setState('success');
})
};
- внутри then уже устаревший state... Как нормально без useRef реализовать? ref тут кажется не очень уместным... Чет пока ничего нормального в голову не приходит
По сути вопрос можно сформулировать так - как из async функций обращаться к актуальному стейту? Кейсы когда нужен старый стейт в таких случаях кажется похоже на исключение.
useCallback. Но ещё лучше работу с апи вынести в принципе из компонента с помощью какого-нибудь reatom'а или effector'a.
Обсуждают сегодня