【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),
  []
)
相关推荐
TON_G-T17 分钟前
javascript中 Iframe 处理多端通信、鉴权
开发语言·前端·javascript
周淳APP21 分钟前
【JS之闭包防抖节流,this指向,原型&原型链,数据类型,深浅拷贝】简单梳理啦!
开发语言·前端·javascript·ecmascript
kyriewen28 分钟前
console.log 骗了我一整个通宵:原来它才是时间旅行者
前端·javascript·chrome
忆江南35 分钟前
# iOS 动态库与静态库全面解析
前端
冴羽41 分钟前
在浏览器控制台调试的 6 个秘密技巧
前端·javascript·chrome
青莲84343 分钟前
查找算法详解
android·前端
前端Hardy43 分钟前
别再手动调 Prompt 了!这款开源神器让 AI 输出质量提升 300%,支持 Claude、GPT、Gemini,还免费开源!
前端·javascript·面试
yuhaiqiang43 分钟前
谈谈什么是多AI交叉论证思维
前端·后端·面试
青莲84344 分钟前
排序算法详解
android·前端
留声44 分钟前
Vue3 动态路由实战:基于权限的动态路由管理与常见坑点解析
前端