javascript - 如何在 native react 中停止 setInterval

标签 javascript react-native setinterval

我正在运行一个 setinterval 函数来检查我的 React Native 应用程序中来自 coinbase 的付款,我每 10 秒运行一次该函数,付款完成后,我清除 setinterval 并导航到主页,但 setinteval 仍然继续运行,我该如何停止它?

      useEffect(() => {
        getData();
        myinterval();
      }, []);
    
      const myinterval= () => setInterval(function () {
        checkCharge();
      }, 10000);

      const stopCounter = () => {
        clearInterval(myinterval);
      }

  const checkCharge = async () => {
    try {
      ...SOME_CODE_HERE...
      stopCounter()        
      navigation.navigate("HomeScreen");
          
    } catch (e) {
      console.log(e);
    }
  };

最佳答案

几个月前我遇到了类似的问题,这个解决方案应该可以完美地工作:

const myinterval = setInterval(function () {
      checkCharge();
 }, 10000);

但就我而言,由于我将 setInterval 存储在变量而不是函数中,因此遇到了一些奇怪的问题,例如 setInterval 可能会运行三次或保留即使在我使用 clearInterval(INTERVAL_NAME); 之后运行,因此如果您想检查是否已付款,请创建一个按钮,告诉用户在付款后单击,这将比在 setInterval

中运行函数安全得多

关于javascript - 如何在 native react 中停止 setInterval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70963471/

相关文章:

javascript - AnyThing Slider JQuery 插件在 Chrome 中工作,在 Firefox 中不工作,找不到错误

javascript - 如何在客户端加密一个值并在不解密的情况下通过 Web 服务器传递它

javascript - 当函数返回某些东西时,new 不起作用

javascript - 从 firebase 返回新帖子的键返回 null

javascript - React 中状态变量与局部变量的比较

javascript - 包装 jquery 插件的 Angular 指令

android - react-native run-android 失败 MacOS

javascript - 与 setInterval() 冲突的动画

javascript - 具有不规则间隔的嵌套 settimeout (更复杂的方式)

jquery - 有没有更有效的方法在页面标题中显示未读消息数?