带钩子的动态倒数计时器(React Native)

时间:2020-08-20 03:49:04

标签: react-native react-redux react-hooks

我有一组数字被保存到redux中以进行一组练习。当您进入每个练习的页面并按完成时,计时器会将所有计数递减至零,然后重置为原始编号。

因此,我将使用useState设置原始值。

const [count, setCount] = useState({ReduxValue});

但是然后我将使用useEffect进行倒数并将数字重置为原始值,对吗? useEffect会怎么称呼?初始状态值(setInitialTime)? 我会使用相同的useEffect重设值吗?

编辑: 到目前为止,这就是我所拥有的。一旦数字降为零,它就会跳出来,而下一次在倒计时期间,它似乎是跳过或跳跃数字。

   function Counter() {
      const [count, setCount] = useState({ReduxValue});
      const [isActive, setIsActive] = useState(false);
    
      function startTimer() {
        setCount({ReduxValue});
        setIsActive(true);
      }
    
      useEffect(() => {
        let interval = null;
        if (isActive) {
          interval = setInterval(() => {
            count - 1 < 0 ? setCount(5) : setCount(count - 1);
          }, 1000);
        } else if (!isActive && count != 0) {
          clearInterval(setInterval);
        }
      });

1 个答案:

答案 0 :(得分:2)

  1. 使用布尔值触发倒计时。
  2. 倒计时结束后,您可以更新自己的redux状态。
O(n^2)