React使用 lodash-es 中的throttle方法失效

React使用 lodash-es 中的throttle方法失效

下面代码用了throttle方法,但是并没有实现1500内执行一次的效果,主要原因是useState的setValue()方法
该方法更新了state,导致了组件重新渲染,并且重新生成了函数,所以1500毫秒又被重置了

// ****** 错误 ******
const onAction = throttle(async () => {
  const params = {};
  const res = await API.loanSubmitSubmitApi(params);
  if (res.code === 200) {
    setValue('XXXX')
  }
}, 1500);

// ****** 正确 ******
// 这里为什么步用useCallback,具体原因没细究,我看到相关issue的回答就是改成useMemo.
// 如果需要用到load接口中的数据并且数据存在state中,这里的依赖项就应该是[loadData],不添加依赖项的话,会获取不到load的接口数据
const onAction = useMemo(
  () =>
    throttle(async () => {
      const params = {};
      const res = await API.xxxxxApi(params);
      if (res.code === 200) {
        setValue("XXXX");
      }
    }, 1500),
  []
);

相关推荐

  1. React使用 lodash-es throttle方法失效

    2024-05-03 07:42:09       34 阅读
  2. React使用lodashdebounce未生效

    2024-05-03 07:42:09       61 阅读
  3. ReactLodash

    2024-05-03 07:42:09       30 阅读
  4. vue使用lodashdebounce防抖函数

    2024-05-03 07:42:09       60 阅读
  5. loadash常用函数方法

    2024-05-03 07:42:09       40 阅读
  6. 深度比较(lodash isEqual 方法

    2024-05-03 07:42:09       64 阅读
  7. lodash 使用

    2024-05-03 07:42:09       35 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-03 07:42:09       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-03 07:42:09       100 阅读
  3. 在Django里面运行非项目文件

    2024-05-03 07:42:09       82 阅读
  4. Python语言-面向对象

    2024-05-03 07:42:09       91 阅读

热门阅读

  1. 论文笔记总结

    2024-05-03 07:42:09       38 阅读
  2. go的grpc的三种流模式通信

    2024-05-03 07:42:09       32 阅读
  3. MongoDB聚合运算符:$sum

    2024-05-03 07:42:09       33 阅读
  4. opencv namedWindow函数

    2024-05-03 07:42:09       30 阅读
  5. 数论7-同余

    2024-05-03 07:42:09       32 阅读
  6. 周报 | 24.4.22-24.4.28文章汇总

    2024-05-03 07:42:09       36 阅读
  7. 计算机视觉(CV)是什么以及应用场景

    2024-05-03 07:42:09       40 阅读