【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),
  []
)
相关推荐
kylezhao20192 分钟前
第三节、C# 上位机面向对象编程详解(工控硬件封装实战版)
开发语言·前端·c#
行思理3 分钟前
css 样式新手教程
前端·css·html5
帅帅在睡觉25 分钟前
组件的创建与挂载
javascript·vue.js·elementui
qq_4061761431 分钟前
JavaScript闭包:从底层原理到实战
开发语言·前端·javascript
冰暮流星31 分钟前
javascript之Math对象——绝对值,开次方,四舍五入
前端·javascript
啊啊啊啊懒34 分钟前
vite创建完项目之后vue文件中有标签报错
前端·javascript·vue.js
Knight_AL34 分钟前
从 bootstrap.yml 到 Config Data 的一次架构升级
前端·架构·bootstrap
共享家952742 分钟前
测试常用函数(下)
java·服务器·前端
问道飞鱼1 小时前
【Rust开发知识】Actix-web 开发环境搭建完整教程
开发语言·前端·rust·actix-web
a176029317571 小时前
任天堂超级马里奥合集系列游戏130合1 解压即玩 天马G前端整合包附使用教程
前端·游戏·玩游戏·游戏机·单机游戏