我如何在ReactJS中每隔5分钟调度一次动作

阿迪亚·库玛(Aditya Kumar)

我试图每5分钟发送一次操作。一旦用户登录,它必须调度动作。它将每隔5分钟开始调度动作。我尝试使用,setInterval但是这里的问题是即使我注销,它仍会继续执行调度操作。

这是我的代码,我已在我的app.js中定义了keepAlive函数,将整个应用程序包装到redux存储中。isAuthenticated是布尔函数。如果isAuthenticated为true并且API.getAcessTokenlocalstorage那时可用,则我想调度操作。

  function keepAlive() {
    if (
      props.isAuthenticated === true &&
      API.getAccessTokenFromLocalStorage()
    ) {
      setInterval(() => {
        props.keepTokenAlive();
      }, 100000); // 1000ms =1sec
    } else {
      return null;
    }
  }
  keepAlive();
日东

您可以创建一个自定义的React钩子。有一些库可以解决此问题,但是所涉及的代码很小,您可以自己这样做。

例如,这是use-interval NPM包中的源代码

import { useEffect, useRef } from 'react';

const useInterval = (callback, delay) => {
  const savedCallback = useRef();

  useEffect(
    () => {
      savedCallback.current = callback;
    },
    [callback]
  );

  useEffect(
    () => {
      const handler = (...args) => savedCallback.current(...args);

      if (delay !== null) {
        const id = setInterval(handler, delay);
        return () => clearInterval(id);
      }
    },
    [delay]
  );
};

export default useInterval;

您可以这样使用它:

const MyComponent = () => {
  useInterval(() => {
    // your code here
  }, 5000);

  return null
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何每隔10分钟在HTML中执行一次Javascript?

Nexus-5每隔一分钟触发一次守位

为什么我的PC每隔23分钟重启一次?

为什么我的显示器每隔10分钟保持关闭一次?

每隔5分钟更改一次的多个视频随机播放的部分

每隔5分钟自动切换一次窗体之间的窗口

每2分钟调度一次android

如何在swift5中每30分钟只调用一次API?

如何每隔几秒钟在Rails中运行一些动作10分钟?

我如何每5分钟设置一次cron作业,而不使用可被5整除的分钟?

如何在每5分钟运行一次的SQL Server代理作业中仅更新一次列

如何在Logstash 5.0中每五分钟运行一次计划?

如何在SQL中每2分钟获取一次记录

每25分钟一次如何在jmeter中运行线程

如何在Quartz Scheduler中每3分钟运行一次?

为什么我的Cron作业每隔1小时设置一次,却每隔1分钟运行一次?

CronJob不能在午夜工作,但是如果我每隔5分钟设置一次,CronJob就可以工作

每隔15分钟生成一次系列,但每隔一周跳过一次

我如何每隔一分钟在php中执行代码?

每隔30分钟检查一次后台服务中的互联网连接

如何将数据临时保留在某处,并每隔10分钟使用一次将其存储在数据库中?

如何在Windows命令提示符下每5分钟安排一次任务?

每隔一分钟执行一次功能android / kotlin

使用H / 1每隔一分钟运行一次Jenkins作业

气流DAG每隔一分钟运行一次

每隔一分钟运行一次JS函数

每5分钟刷新一次屏幕

每5分钟徘徊一次吐司

每5分钟加载一次模态