【发布时间】:2022-01-06 17:48:33
【问题描述】:
我正在尝试从此 API 访问信息。我可以访问第一级,但是当我尝试访问超过第一级的任何属性时,我收到一条错误消息,指出 TypeError: Cannot read properties of undefined (reading 'usd')。
我正在使用功能组件和 useEffect() 挂钩在 React 中调用我的 API。
JSON API 示例:
{
"name" : "Bitcoin",
"market_cap" : {
"usd" : 100
}
}
据我了解,这是因为 API 尚未完全获取,因此第一级返回为未定义。我可以访问第一级 (coin.name),但是当我尝试 (coin.market_cap.usd) 时出现错误。
有什么建议吗?
const Coin = () => {
const params = useParams()
const [coin, setCoin] = useState({})
const url = `https://api.coingecko.com/api/v3/coins/${params.coinId}`
useEffect(() => {
axios.get(url).then((res) => {
setCoin(res.data)
}).catch((err) => {
console.log(err)
})
}, [])
return (
<div>
<h1>{coin.name}</h1>
<p>{coin.market_cap.usd}</p> ------>> Error here
</div>
</div>
)
}
export default Coin
【问题讨论】:
-
({}).market_cap是undefined... 你的默认值对你不是很有用。
标签: javascript reactjs api