当达到给定值时取消间隔

  • 本文关键字:取消 reactjs react-hooks
  • 更新时间 :
  • 英文 :


当我的应用程序中的progressState大于99时,我在哪里放置Clear Interval?

  const [progressState, setProgress] = useState(0);
  useEffect(() => {
    const interval = setInterval(() => { setProgress(progressState => progressState + 1);}, 1000);
  }, []); // this is only called once because of [], now i can't check for clearing

我因为功能性编程而感到困惑,即使添加1 1也正在成为一场噩梦。

我是否必须使用另一种用途方法来清除间隔?

我现在这样做


  const [progressState, setProgress] = useState(0);
  useEffect(() => {
    const interval = setInterval(() => {
      setProgress(progressState => {
        progressState == 100 && clearInterval(interval)
        return progressState + 1;
      });
    }, 100);
  }, []);

在处理程序函数中。

const interval = setInterval(() => {
  setProgress(progressState => progressState + 1);
  if (progressState >= 99) {
    clearInterval(interval);
  }
}, 1000);

相关内容

  • 没有找到相关文章

最新更新