我最近开始了我的网络开发之旅,并决定学习一些JavaScript来处理API,以便学习如何从公共API执行提取(对于初学者来说).我的第一次try 是try 在我的投资组合中集成实时BTC API.尽管ChatGPT表示这是正确的并且应该显示信息,但除了标题之外没有显示任何内容. API - CoinDeskAPI.
这是我的CoinDeskAPI.jsx组件:
import { useEffect, useState } from "react";
export const CoinDeskAPI = () => {
const [btcData, setBtcData] = useState(null);
useEffect(() => {
const fetchData = async () => {
try {
const response = await fetch('https://api.coindesk.com/v1/bpi/currentprice.json');
if (!response.ok) {
throw new Error('Failed to fetch Bitcoin data');
}
const data = await response.json();
setBtcData(data);
} catch (error) {
console.error('Error fetching Bitcoin data:', error);
}
};
fetchData();
}, []);
return (
<article className="flex flex-col gap-2 flex-grow">
<header className="flex w-full flex-row justify-between gap-2">
<h3 className="text-xl text-neutral-950">
API Testing (<a className="hover:text-blue-500 after:content-['_↗']" href="https://api.coindesk.com/v1/bpi/currentprice.json" target="_blank" rel="noreferrer"> CoinDeskAPI</a>)
</h3>
</header>
<p className="w-auto max-w-[60ch] leading-6 text-base">Displaying live BTC values, first API test!</p>
<article>
{btcData && (
<ul>
<li>BTC Rate (USD): {btcData.bpi.USD.rate}</li>
<li>BTC Rate (EUR): {btcData.bpi.EUR.rate}</li>
<li>BTC Rate (GBP): {btcData.bpi.GBP.rate}</li>
</ul>
)}
</article>
</article>
);
};
这就是我将其传递到我的index.astro文件的方式:
---
...other imports
import { CoinDeskAPI } from "../components/CoinDeskAPI.jsx";
---
<Layout title="Portfolio">
<main class="flex flex-col gap-20">
<!-- More code... -->
<!-- Bitcoin API section -->
<CoinDeskAPI />
</main>
</Layout>