首页 > 其他分享 >useState+setInterval 导致获取useState都是原始的解决方法

useState+setInterval 导致获取useState都是原始的解决方法

时间:2023-03-07 11:45:57浏览次数:39  
标签:savedCallback useRef setInterval delay 获取 useState id

 1 import { useRef, useEffer } from "react";
 2 export function useInterval(callback, delay) {
 3   const savedCallback = useRef();
 4  
 5   useEffect(() => {
 6     savedCallback.current = callback;
 7   });
 8   useEffect(() => {
 9     function tick() {
10       savedCallback.current();
11   }
12   if (delay !== null) {
13     let id = setInterval(tick, delay);
14       return () => clearInterval(id);
15   }
16 }, [delay]);
17   return () => clearInterval(id);
18 }, [delay]);

 

标签:savedCallback,useRef,setInterval,delay,获取,useState,id
From: https://www.cnblogs.com/Dluea/p/17187511.html

相关文章

  • 所以函数获取项目负责人和部门负责人
    CREATEDEFINER=`root`@`localhost`FUNCTION`getHRids`(projectidVARCHAR(32),useridVARCHAR(32))RETURNSvarchar(2000)CHARSETutf8BEGINDECLAREprojmanagerVARC......
  • 【android】Android定位功能开发(1)——获取位置
    基于位置的服务包括三个方面:获取位置、地图服务、地理编码服务。获取位置有两种方式,一种是通过GPS获得位置,精度高,耗电高,另一种是通过WLAN或通讯基站获得位置,精度低,耗电低......
  • 获取小程序页面路径
    1.在推文草稿中搜索小程序,开启入口2.在小程序中复制路径  ......
  • 类对象的四种获取方式
    packagetest;publicclassAcquireClass{publicstaticvoidmain(String[]args)throwsClassNotFoundException{/***得到类对象的四种......
  • shell获取所有ipv4地址
    需要安装jqubuntu@gooderver:~$ip-j-4addrshow|jq'.[]|.addr_info|.[]|.local'"127.0.0.1""172.24.64.162"ubuntu@gooderver:~$ip-j-6addrshow|jq'.[]......
  • 获取外网ip地址
    通过TIdHTTP空间的Get访问外网IP查询procedureTForm1.Button1Click(Sender:TObject);varstxt:string;i,i2:integer;begin//如果访问出现“HTTP1.1/403......
  • 集合没有指明泛型,获取数据需要强转
      Listlist=newArrayList(); list.add(2); list.add(1); list.remove(1);//1  Iteratorit=list.iterator();//2 while(it.hasNext()){//3......
  • C# 利用EPPlus获取合并单元格的值
    当我们想获取合并单元格的值的时候,例如a1,a2,a3行在j1列合并了单元格,读取值的时候 我们在 a1行读取到了值 a2,a3行均为空值这种问题解决方法代码......
  • echarts渲染地图获取边界线下载
    1. 边界线下载地址:http://datav.aliyun.com/portal/school/atlas/area_selector2. 操作说明:  ......
  • golang获取windows版本和详细信息
    场景:将木马丢到感染机运行后回连时希望返回感染机的操作系统信息.golang可以通过runtime.OS获取到操作系统类型,但是无法获取详细的版本信息,如win7win10等,解决方案;......