【发布时间】:2021-06-15 03:11:46
【问题描述】:
export default function Timer() {
const [timer, setTimer] = useState(0)
const checkTimer = () => {
console.log(timer);
}
useEffect(() => {
const timer = setInterval(() => {
setTimer(prevCount => prevCount + 1);
}, 1000);
startProgram(); //This starts some other functions
return () => {
checkTimer();
clearInterval(timer);
}
}, [])
}
上面是我的代码的简化版本和主要问题 - 我试图通过在 useEffect() 中设置一个间隔来增加timer 状态(仅一次)。但是,在checkTimer() 中,该值始终为 0,即使控制台语句每秒执行一次。我是 reactjs 新手,希望能得到一些帮助,因为这已经花费了我太多时间来修复。
【问题讨论】:
-
尝试创建一个自定义挂钩,如
useInterval,如this post 的演示所示。这个钩子会比处理setTimeout更好。
标签: javascript reactjs timer react-hooks counter