我对使用 API 还比较陌生,我希望使用 GET 请求从 API 获取数据,而这段代码导致了 GET 请求的无限循环。我最终想要完成的是访问我在 res.data 中接收的数据,以便我可以从 API 响应中返回的对象中提取信息(使用类似 res.data.name 的东西,它当前正在提示一个错误说 res 未定义,我认为这可能是由于范围问题)。
const Podcast=()=>{
const[show,setShow]=useState([])
const[bestPodcasts,setBestPodcasts]=useState([])
const [genre,setGenre]=useState('')
const[data,setData]=useState({})
client.fetchBestPodcasts(
{ genre_id: '91',
page: 2,
region: 'us',
safe_mode: 0,}
)
.then((res) => {
setData(res.data)
// Get response json data here
console.log(res.data);
}).catch((error) => {
console.log(error)
})
答案 0 :(得分:0)
您可以使用 useEffect
钩子,它只会/最初调用您的 API 一次:
const Podcast = () => {
const [show, setShow] = useState([])
const [bestPodcasts, setBestPodcasts] = useState([])
const [genre, setGenre] = useState('')
const [data, setData] = useState({})
useEffect(() => {
apiCall()
}, []);
const apiCall = () => {
const data = {
genre_id: '91',
page: 2,
region: 'us',
safe_mode: 0
}
client.fetchBestPodcasts(data)
.then(res => setData(res.data))
.catch(error => console.log(error))
}
}