我最初在第一次查看屏幕时调用useEffect中的API响应,但API请求一直在运行,我猜是因为我已经达到了发送请求的限制。(我对这项技术很陌生)。
我使用Flatlist来显示项目,我的目标是只在数据更新时渲染。
先谢谢你了。
useEffect(() => {
getCategory();
}, [data])
const getCategory = async () => {
setLoading(true)
await fetch(`URL`,
{
headers: {
'x-api-key': 'API_KEY'
}
})
.then((res) => res.json())
.then(resJson => {
setData(resJson)
}).catch(e => { console.log(e, 'ERROR') })
setLoading(false)
}
1条答案
按热度按时间hjzp0vay1#
我认为看起来你已经在useEffect钩子中添加了你的状态数据作为依赖项,所以当你的async函数在第一次渲染时被调用,然后你在async函数中设置数据,它将再次调用useEffect,它将再次渲染。删除useEffect钩子中的单词data,它将只呈现一次。