天天看點

setInterval讀取外部變量

今天發現了一個問題

類似如下代碼

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 的改變而改變

如果有幫助你的話,能點個贊嗎?

繼續閱讀