【问题标题】:unable to clear interval, React native无法清除间隔,反应原生
【发布时间】:2021-06-04 14:06:33
【问题描述】:

我创建了一个计时器功能,它正在工作,但是当我点击 clearInterval 时它不起作用,计时器仍在运行。

这是我启动计时器的功能。定时器的最大限制是 60 秒

const StartRecord = ()=>{ 
const timeout = setInterval(() => {
        if (time != 60) {
          setTime(prevState => prevState + 1);
        }
      }, 1000);
      console.log(timeout);

      if (time == 60) {
        clearInterval(timeout);
      }
}

这是我停止计时器的功能

  const onStopRecord = () => {
    clearInterval(time);
}

谁能告诉我为什么它不起作用?

【问题讨论】:

    标签: javascript reactjs react-native


    【解决方案1】:

    您正在尝试 clearInterval 使用时间。应该是超时了

    const onStopRecord = () => {
        clearInterval(timeout);
    }
    

    【讨论】:

      【解决方案2】:

      您可以使用useEffect 来完成此任务

      useEffect(() => {
       let interval
       if(time != 60){
          interval = setInterval(() => setTime((prev) => prev + 1), 1000);      
       }
       return () => clearInterval(interval);
      }, [time])
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多