【发布时间】:2020-09-25 19:22:51
【问题描述】:
我正在构建一个带有反应钩子的简单计时器。我有两个按钮启动和重置。 当我单击开始按钮时,handleStart 函数工作正常,计时器启动,但我不知道如何在单击重置按钮时重置计时器。 这是我的代码
const App = () => {
const [timer, setTimer] = useState(0)
const handleStart = () => {
let increment = setInterval(() => {
setTimer((timer) => timer + 1)
}, 1000)
}
const handleReset = () => {
clearInterval(increment) // increment is undefined
setTimer(0)
}
return (
<div className="App">
<p>Timer: {timer}</p>
<button onClick={handleStart}>Start</button>
<button onClick={handleReset}>Reset</button>
</div>
);
}
为了停止或重置计时器,我需要在 clearInterval 方法中传递一个属性。增量是在 handleStart 函数中定义的,所以我无法在 handleReset 函数中访问它。怎么办?
【问题讨论】:
-
有什么妨碍你在全球范围内定义它吗?
标签: javascript reactjs timer react-hooks