我想在頁面獲取 firestore 資料時設定加載狀態。我正在使用這個:
const [isLoading, setIsLoading] = React.useState(true)
const fetchGames=async()=>{
let promises = []
const dataDB = await db.collection('event')
const eventsFromDb = []
const DB =await db.collection('event').get()
DB.docs.forEach((item,index)=>{
const promise = dataDB
eventsFromDb[index]= item.data()
promises.push(promise);
})
setEvents(eventsFromDb)
Promise.all(promises)
.then(setIsLoading(false));
}
useEffect(()=>
{
fetchGames()
if(!isLoading)
{
console.log("HEY")
}
}, [])
我無法進入HEY我的控制臺,如何解決這個問題?
uj5u.com熱心網友回復:
就目前而言,您的useEffect方法僅在組件安裝上運行。您還需要在狀態更新時運行它。
您只需將您的狀態作為引數添加到useEffect陣列引數中。像這樣:
useEffect(()=>
{
fetchGames()
if(!isLoading)
{
console.log("HEY")
}
}, [isLoading])
這將在掛載和isLoading狀態更新時運行效果。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/481659.html
標籤:javascript 反应 火力基地
上一篇:如何測驗欄位是否為空html
下一篇:當我設定寬度時,子元素消失
