今天發現了一個問題
類似如下代碼
function myFunction(){
const [count, setCount] = useState(0)
useEffect(()=>{
setInterval(()=>{
console.log(count)
},1000)
},[])
...
setCount(...)
...
}
會發現不管怎麼更改count的值,輸出的始終是0
那麼setInterval想要讀取到實時更新的變量該怎麼辦呢
查了很多資料發現
可以讀取全局變量,或者匿名函數啥的(沒試過,想試的可以試試)
那就直接最簡單的全局變量好了
上面的代碼可以改成
let globalCount = 0
function myFunction(){
useEffect(()=>{
setInterval(()=>{
console.log(globalCount)
},1000)
},[])
...
globalCount =...
...
}
現在就可以發現,輸出随着globalCount 的改變而改變
如果有幫助你的話,能點個贊嗎?