前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >react踩坑笔记

react踩坑笔记

作者头像
心念
发布2023-01-11 21:12:42
2660
发布2023-01-11 21:12:42
举报
文章被收录于专栏:前端心念前端心念

在函数组件使用防抖函数无效

原因

函数组件每重新渲染,内部定义的函数都会重新计算,从而导致防抖计时失效

代码语言:javascript
复制
1const getSuggest = debounce(() => {
2    request
3      .get("/search/suggest", {
4        params: { keywords: keywords.current, type: "mobile" },
5      })
6      .then((res: any) => {
7        if (res.code === 200 && res.result?.allMatch) {
8          setSuggestdata(res.result.allMatch);
9        } else {
10          setSuggestdata([]);
11        }
12      });
13  }, 500);

解决

使用useCallback将防抖函数缓存住,避免被重新计算

代码语言:javascript
复制
1  const getSuggest = useCallback(
2    debounce(() => {
3      request
4        .get("/search/suggest", {
5          params: { keywords: keywords.current, type: "mobile" },
6        })
7        .then((res: any) => {
8          if (res.code === 200 && res.result?.allMatch) {
9            setSuggestdata(res.result.allMatch);
10          } else {
11            setSuggestdata([]);
12          }
13        });
14    }, 500),
15    []
16  );
17
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 在函数组件使用防抖函数无效
    • 原因
      • 解决
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档