Javascript 我想为我的测验反应应用程序启动一个倒计时计时器(小时:分钟:秒),如何仅在我选择主题时启动计时器? //选择主题时调用此函数// 常数StartTimer=()=>{ useffect(()=>{ 常数二次中心= 秒>0&& 设置间隔(()=>setSeconds(秒-1),1000); return()=>clearInterval(secondsCenter); },[秒]; //秒==60(当秒==0时) useffect(()=>{ 返回()=>setSeconds(2); },[seconds===0&&minutes>0&&timeDone]); //会议记录 //分钟60->0(当秒==0时) useffect(()=>{ return()=>setMinutes(minutes-1); },[seconds===0&&minutes>0]); //分钟==60(当分钟==0时) useffect(()=>{ return()=>setMinutes(2); },[minutes===0&&hours>0&&timeDone]); //小时数 //24小时=>0(当分钟==0时) useffect(()=>{ return()=>setHours(小时-1); },[minutes===0&&hours>0&&timeDone]); //完成 useffect(()=>{ return()=>{ setDone(真); console.log('STOP'); 历史推送(“/”); }; },[hours==0&&minutes==0&&seconds==0]); }; }

Javascript 我想为我的测验反应应用程序启动一个倒计时计时器(小时:分钟:秒),如何仅在我选择主题时启动计时器? //选择主题时调用此函数// 常数StartTimer=()=>{ useffect(()=>{ 常数二次中心= 秒>0&& 设置间隔(()=>setSeconds(秒-1),1000); return()=>clearInterval(secondsCenter); },[秒]; //秒==60(当秒==0时) useffect(()=>{ 返回()=>setSeconds(2); },[seconds===0&&minutes>0&&timeDone]); //会议记录 //分钟60->0(当秒==0时) useffect(()=>{ return()=>setMinutes(minutes-1); },[seconds===0&&minutes>0]); //分钟==60(当分钟==0时) useffect(()=>{ return()=>setMinutes(2); },[minutes===0&&hours>0&&timeDone]); //小时数 //24小时=>0(当分钟==0时) useffect(()=>{ return()=>setHours(小时-1); },[minutes===0&&hours>0&&timeDone]); //完成 useffect(()=>{ return()=>{ setDone(真); console.log('STOP'); 历史推送(“/”); }; },[hours==0&&minutes==0&&seconds==0]); }; },javascript,mern,Javascript,Mern,剩余时间:{小时}:{分钟}:{秒} Hi,我认为您没有按预期使用useffects。第二个参数不是何时执行效果的条件,它是一个依赖项数组。React检查这些依赖项中是否有任何一项发生了更改,当其中任何一项发生更改时,它将运行效果。当我写下这篇评论时,我想我理解了你试图做的事情,现在我认为这可能是很好的。它最终成功了,我只是使用setSeconds(false)作为初始状态。之前我使用setSeconds(0)作为初始状态。谢谢你的帮助。

剩余时间:{小时}:{分钟}:{秒}


Hi,我认为您没有按预期使用
useffect
s。第二个参数不是何时执行效果的条件,它是一个依赖项数组。React检查这些依赖项中是否有任何一项发生了更改,当其中任何一项发生更改时,它将运行效果。当我写下这篇评论时,我想我理解了你试图做的事情,现在我认为这可能是很好的。它最终成功了,我只是使用setSeconds(false)作为初始状态。之前我使用setSeconds(0)作为初始状态。谢谢你的帮助。