Back to questions
Junior — Middle
64
Каким образом реализовать асинхронные операции внутри хука useEffect в React?
Answer from AI
sobes.tech AI
В React внутри хука useEffect нельзя напрямую сделать функцию асинхронной (нельзя писать async перед функцией, переданной в useEffect), потому что useEffect ожидает либо функцию очистки, либо ничего.
Правильный способ — объявить асинхронную функцию внутри эффекта и вызвать её:
useEffect(() => {
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
// обновить состояние или выполнить другие действия
}
fetchData();
}, []);
Или использовать стрелочную функцию:
useEffect(() => {
const fetchData = async () => {
const response = await fetch('/api/data');
const data = await response.json();
// обновить состояние
};
fetchData();
}, []);
Такой подход позволяет выполнять асинхронные операции внутри useEffect корректно.