Вот пример:
import React, { useCallback } from 'react';
function MyComponent() {
const fetchData = useCallback(async () => {
const response = await fetch('https://api.example.com/data');
const data = await response.json();
console.log(data);
}, []);
return (
Fetch Data
);
}
В этом примере, мы создаем функцию fetchData, которая является асинхронной функцией, и затем передаем ее в useCallback. Важно помнить, что в useCallback передается функция, а не результат ее вызова. Таким образом, мы можем передать fetchData как обычную функцию для использования внутри компонента. Если вы хотите использовать async/await в useEffect, вам нужно поместить его внутри функции useEffect. Вот пример:
import React, { useState, useEffect } from 'react';
function MyComponent() {
const [data, setData] = useState(null);
useEffect(() => {
async function fetchData() {
const response = await fetch('https://api.example.com/data');
const data = await response.json();
setData(data);
}
fetchData();
}, []);
return (
{data && {data}}
);
}
В этом примере мы определяем функцию fetchData внутри useEffect и вызываем ее с помощью await. Как только данные получены, мы сохраняем их в состояние с помощью setData.