我的setInterval没有在useEffect内部运行吗?

时间:2020-03-03 20:11:01

标签: javascript reactjs

这是一个番茄钟,所以我在useEffect内使用setInterval,但是它只是停止了,演示: https://snack.expo.io/@gpbaculio/curious-orange

React.useEffect(() => {
    if (startTimer) {
      return;
    }
    if (start) {
      const animation = Animated.timing(percent, {
        toValue: width / 2,
        duration: totalSeconds * 1000,
      });
      animation.start();
      const timer = setInterval(() => {
        setTime(secondsToHms(totalSeconds - 1));
        setTotalSeconds(totalSeconds - 1);
      }, 1000);
      setStartTimer(timer);
    }
  }, [percent, start, startTimer, totalSeconds, time]);

为什么setInterval没有运行?当我确定要放在第二个数组上时,什么也没有更新,只是间隔没有运行。刚开始我在上面使用redux,这很好,但是我认为redux是对它的过度设计,所以我想使用简单的反应。

0 个答案:

没有答案