В целом, вы движетесь в правильном направлении. Для извлечения данных вы должны использовать useEffect
и передавать []
в качестве второго аргумента, чтобы убедиться, что он срабатывает только при первоначальном монтировании.
Я полагаю, что вы могли бы извлечь выгоду из отделения функции fetchData
и сделать ее более общей, как таковой:
const fetchData = async (url) => {
const response = await fetch(url);
const json = await response.json();
return json;
};
const Fetch = () => {
const [data, setData] = useState(null);
useEffect(() => {
const { disclaimer } = fetchData("https://api.coindesk.com/v1/bpi/currentprice.json");
setState(disclaimer)
}, []);
return <div>{data}</div>;
};