1 回答

TA貢獻1805條經(jīng)驗 獲得超9個贊
我認為問題在于您如何存儲間隔ID。當使用功能組件并且我們想存儲“實例”變量時,我們可以使用useRef鉤子。
let intervalId = useRef(null)
let handlePlayPause = () => {
debugger
if (!isRunning) {
setTimeLeft(sessionLength * 60 * 1000)
playTimer()
} else if (isRunning) {
pauseTimer()
}
}
let playTimer = () => {
setIsRunning(true)
intervalId.current = setInterval(() => {
console.log('interval')
setTimeLeft(timeLeft => timeLeft - 1000)
parseToMinuteSeconds(timeLeft)
}, 1000)
}
let pauseTimer = () => {
setIsRunning(false)
clearInterval(intervalId.current)
}
在react docs上有一個與您的用例類似的示例
添加回答
舉報