import "./App.css";
import axios from "axios";
import { useEffect, useState } from "react";
export default function Events() {
const \[data, setdata\] = useState(null);
useEffect(() =\> {
axios.get("https://app.ticketmaster.com/discovery/v2/events?apikey=AZAG8m4u5gq5HgkyYk0sdE9eAG32vGPT&locale=*")
.then((res) =\> {
setdata(res.data);
})
.catch((error) =\> {
console.log("Error encountered", error);
});
});
// console.log(data);
return (
\<div className="App"\>
{/* {data.\_embedded.events.map((e) =\> {
<li>\[{e}\] {e.name}</li>;
})} \*/}
<h1>In Homepage</h1>
\
);
}
在显示实际数据之前,我得到了两次null:
我尝试从API获取数据并使用AXIOS显示它,但在AXIOS请求完成之前,其余代码只执行一次。
2条答案
按热度按时间qxgroojn1#
你需要在useEffect()中使用空数组。
请访问https://react.dev/reference/react/useEffect#specifying-reactive-dependencies了解更多详情
czq61nw12#
首先,需要向
useEffect
添加一个空数组,使其只运行一次。当事件可用时,可以使用
&&
操作符来呈现事件,如下所示: