首页 > 解决方案 > 我想为我的 Quiz React 应用程序启动倒数计时器(小时:分钟:秒),如何仅在选择主题时启动计时器?

问题描述

//This function is called when I select a Subject//

const StartTimer =()=>{
useEffect(() => {
      const secondsCounter =
        seconds > 0 &&
        setInterval(() => setSeconds(seconds - 1), 1000);
      return () => clearInterval(secondsCounter);
    }, [seconds]);
   
    //seconds == 60 (when seconds == 0)
    useEffect(() => {
      return () => setSeconds(2);
    }, [seconds === 0 && minutes > 0 && !timeDone]);
    
    //MINUTES
    //Minutes 60 -> 0  (when seconds == 0)
    useEffect(() => {
      return () => setMinutes(minutes - 1);
    }, [seconds === 0 && minutes > 0]);
    

    // Minutes == 60 (when minutes == 0)
    useEffect(() => {
      return () => setMinutes(2);
    }, [minutes === 0 && hours > 0 && !timeDone]);

    //HOURS
    //hours 24 => 0 (when minutes == 0)
    useEffect(() => {
      return () => setHours(hours - 1);
    }, [minutes === 0 && hours > 0 && !timeDone]);

    //DONE
    useEffect(() => {
      return () => {
        setDone(true);
        console.log('STOP');
        history.push('/');
      };
    }, [hours === 0 && minutes === 0 && seconds === 0]);
  };
}

 <p>Remaining Time: {hours} :{minutes}: {seconds}</p>

标签: javascriptmern

解决方案


推荐阅读