gpt4 book ai didi

javascript - 为什么我的时间递减函数不起作用?

转载 作者:行者123 更新时间:2023-12-04 07:19:16 26 4
gpt4 key购买 nike

我正在尝试在 React 中制作一个番茄钟计时器,但是在它打开时应该减少计时器的功能没有暂停。
这是我的功能:

const runTime = () =>{
let date = new Date().getTime();
let nextDate = new Date().getTime() +1000;
if(active){
let interval = setInterval(()=>{
date = new Date().getTime();
if(date>nextDate && active){
setTime((prev)=>{
return prev-1;
});
nextDate+=1000;
}
},30)
}
localStorage.clear();
localStorage.setItem('interval-id', interval);
if(!active){
clearInterval(localStorage.getItem('interval-id'));
}
}
使用的变量是这样的:
const [sessionTime, setSessionTime] = React.useState(25*60);
const [active, setActive] = React.useState('false');
const [time, setTime] = React.useState(sessionTime);

最佳答案

我认为您的问题可能来自您如何将 bool 值传递给 useState。您正在传递字符串 useState('false'),而不是将其作为 bool 值 useState(false) 传递。我猜 active 总是真的,因为它是一串字符,所以假的 !active 永远不会发生。
所以改useState('false')useState(false)至少这是我的猜测。希望它为你修复它。

关于javascript - 为什么我的时间递减函数不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68606257/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com