今天发现了一个问题
类似如下代码
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 的改变而改变
如果有帮助你的话,能点个赞吗?