const [currentIndex, setCurrentIndex] = useState<number>(0)
useEffect(() => {
interval()
}, [])
/** timeout模拟interval */
const interval = () => {
setTimout(() => {
if (currentIndex < 100) {
console.log(currentIndex) // 打印的一直都是0
setCurrentIndex(prev => (++prev))
}
}, 1000)
}
/** 页面上能按照每秒+1更新,但是会一直执行定时器,控制台也是一直打印0,永远也到达不了边界 */
return (
<View>{currentIndex}</View>
)
如上代码所示,定时器里退出判断条件里的currentIndex一直都是旧的值,导致代码无法退出?
可是页面上却已经更新了DOM。。。
这是为什么呢?想知道这是怎么回事
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…