javascript - 如果函数中设置了间隔,如何清除函数组件中的间隔?

标签 javascript reactjs

我知道在 useEffect 中启动一个间隔很容易被清除,如下所示:

useEffect(() => {
   const interval = setInterval(some function, time);
   return () => clearInterval(interval)
})

但是如果我必须在函数内设置一个间隔怎么办,在这种情况下如何清除间隔,或者只是我不需要?

const startGame = () => {
  const interval = setInterval(some function, time);
}

useEffect(() => {
  startGame()
})

最佳答案

您可以使用useEffect钩子(Hook)来清除间隔

   import React, { useEffect } from "react";

    const Timer = () => {
      const interval = React.useRef();
      const startGame = () => {
        interval.current = setInterval(() => {
          //code
        }, 3000);
      };
      React.useEffect(() => {
        return () => {
          clearInterval(interval.current);
        };
      }, []);
    };
    
    export default Timer;

关于javascript - 如果函数中设置了间隔,如何清除函数组件中的间隔?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62520334/

相关文章:

Javascript:将包含日期的数组按降序排序

javascript - React-router-dom 页面不会切换?

javascript - 'process.env.NODE_ENV' 替换为字符串或进程对象,可在运行时在 create-react-app 中使用

reactjs - 如何通过 useEffect 立即使用来自 API 的数据?

reactjs - 使用 docker compose 运行 TypeScript React 应用程序时出错

javascript - 将 FullCalendar 事件填充为数组 - 从另一个数组填充

javascript - 使用javascript编写随机<script>

javascript - Casper - 了解使用函数回调进行评估

reactjs - ReactCSSTransitionGroup 只适用于新组件中的动画?

javascript - 根据更改事件填充选择下拉列表