в соответствии с документацией о перехватах реагирования, только перехватчики вызовов из функций реагирования Не вызывать перехватчики из обычных функций JavaScript. Компоненты React Function - в основном это просто JavaScript Функции, являющиеся компонентами React, которые возвращают JSX (синтаксис React) для вашего требования. В вашем компоненте реагирования вы можете сделать следующее. Идея состоит в том, чтобы инициализировать обработчик состояния пустым массивом, а затем обновлять его, как только json доступны данные. логи извлечения c можно перемещать внутри useeffect.
const SampleComponent=()=>{
const [data,setData] = useState([])
useeffect (){
fetch(url).then((responsedata)=>setData(responseData) ,err=>console.log (err)
}
return (
<>
{
data.map((value,index)=>
<div key=index>{value}<div>
}
</>
)
}
, если вы обнаружите, что шаблон извлечения повторяется в вашем приложении, вы можете использовать для этого пользовательский хук.
const useFetch = (url, options) => {
const [response, setResponse] = React.useState(null);
const [error, setError] = React.useState(null);
React.useEffect(() => {
const fetchData = async () => {
try {
const res = await fetch(url, options);
const json = await res.json();
setResponse(json);
} catch (error) {
setError(error);
}
};
fetchData();
}, []);
return { response, error };
};
в вашем компоненте React вы можете использовать как
const {data,error} = useFetch(url , options)