Back to questions
Junior — Middle
61
Каким образом можно организовать асинхронные вызовы в React, используя хуки?
Answer from AI
sobes.tech AI
В React асинхронные вызовы обычно организуют с помощью хука useEffect. Внутри useEffect можно вызывать асинхронные функции, например, для загрузки данных с сервера. Поскольку сам эффект не может быть асинхронным, внутри него создают и вызывают асинхронную функцию.
Пример:
import React, { useState, useEffect } from 'react';
function DataLoader() {
const [data, setData] = useState(null);
const [loading, setLoading] = useState(true);
useEffect(() => {
async function fetchData() {
try {
const response = await fetch('https://api.example.com/data');
const result = await response.json();
setData(result);
} catch (error) {
console.error('Ошибка загрузки данных:', error);
} finally {
setLoading(false);
}
}
fetchData();
}, []); // пустой массив зависимостей — вызов один раз при монтировании
if (loading) return <div>Загрузка...</div>;
return <div>Данные: {JSON.stringify(data)}</div>;
}
Такой подход позволяет выполнять асинхронные операции при монтировании компонента и обновлять состояние по мере получения данных.