【React】使用lodash的debounce未生效

react中直接使用lodash的debounce函数,发现并未生效,1秒内多次触发,控制台仍有多次打印,这是因为debounceSearch函数被重新定义了,需要使用useCallback来包装函数。

javascript 复制代码
import { ChangeEvent } from "react"
import { useCallback, useState } from "react"
import { Input } from "antd"
import _ from "lodash"

export default () => {
	const [idValue, setIdValue] = useState<string>("")
	const debounceSearch = _.debounce((value) => {
	    console.log(value)
	  }, 1000)
	)
	const onIptChange = (e: ChangeEvent<HTMLInputElement>) => {
	  debounceSearch(e.target.value)
	}

	return <Input value={idValue} onChange={onIptChange}/>
}

使用useCallback,可以将这个函数缓存起来,避免重复定义。

javascript 复制代码
const debounceSearch = useCallback(
  _.debounce((value) => {
    console.log(value)
  }, 1000),
  []
)
相关推荐
尘中客2 小时前
放弃 Echarts?前端直接渲染后端高精度 SVG 矢量图流的踩坑记录
前端·javascript·echarts·前端开发·svg矢量图·echarts避坑
FreeBuf_3 小时前
Chrome 0Day漏洞遭野外利用
前端·chrome
小彭努力中3 小时前
199.Vue3 + OpenLayers 实现:点击 / 拖动地图播放音频
前端·vue.js·音视频·openlayers·animate
2501_916007473 小时前
网站爬虫原理,基于浏览器点击行为还原可接口请求
前端·javascript·爬虫·ios·小程序·uni-app·iphone
前端大波3 小时前
Sentry 每日错误巡检自动化:设计思路与上手实战
前端·自动化·sentry
Highcharts.js4 小时前
适合报表系统的可视化图表|Highcharts支持直接导出PNG和PDF
javascript·数据库·react.js·pdf
ZC跨境爬虫4 小时前
使用Claude Code开发校园交友平台前端UI全记录(含架构、坑点、登录逻辑及算法)
前端·ui·架构
慧一居士4 小时前
Vue项目中,何时使用布局、子组件嵌套、插槽 对应的使用场景,和完整的使用示例
前端·vue.js
叫我一声阿雷吧4 小时前
JS 入门通关手册(35):执行上下文、调用栈与作用域链深度解析
javascript·作用域链·js进阶·执行上下文·调用栈·变量提升·闭包原理
Можно5 小时前
uni.request 和 axios 的区别?前端请求库全面对比
前端·uni-app