我正在创建一个简单的计时器,当用户点击开始计时器时,计时器开始,当用户点击停止计时器时,计时器停止。但是 clearinterval 不起作用,我什至尝试过
df1
Date-Time A B C D
2012-01-11 7:10:05:00 0 1 2 3
2012-01-11 7:14:05:00 0 1 2 3
2012-01-11 7:16:05:00 0 1 2 3
2012-01-11 7:25:05:00 0 1 2 3
2012-01-11 7:31:05:00 0 1 2 3
df2
Date-Time A B C D
2012-01-11 7:10:05:00 6 8 1.5 6.8
2012-01-11 7:25:05:00 0 11 4 3.3
2012-01-11 7:31:05:00 0 44 2.2 3.3
答案 0 :(得分:0)
唯一一次调用 clearInterval
时,id
未定义。 (也就是说,它被声明为该函数作用域内的一个变量,但没有为其设置值。)您需要存储该 id
的值,以便以后可以访问它。由于这是一个 React 组件,因此 state 是一个合理的存储位置。例如:
const [intervalId, setIntervalId] = useState(0);
然后在设置间隔时设置那个状态:
setIntervalId(setInterval(() => setSeconds(sec => sec + 1), 1000));
然后当您清除间隔时,您可以使用状态中的 ID 值:
clearInterval(intervalId);