【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),
  []
)
相关推荐
阿珊和她的猫6 小时前
前端应用首屏加载速度优化全攻略
前端·状态模式
Mike_jia7 小时前
LiteOps:轻量级CI/CD平台,重塑开发运维新体验
前端
浮游本尊7 小时前
React 18.x 学习计划 - 第十四天:实战整合与进阶收尾
前端·学习·react.js
_Eleven11 小时前
Tailwind CSS vs UnoCSS 深度对比
前端
NEXT0612 小时前
TCP 与 UDP 核心差异及面试高分指南
前端·网络协议·面试
qq_242188633212 小时前
HTML 全屏烟花网页
前端·html
曲幽12 小时前
FastAPI实战:WebSocket长连接保持与心跳机制,从入门到填坑
javascript·python·websocket·keep-alive·fastapi·heartbeat·connection
码云数智-大飞12 小时前
前端性能优化全链路实战:从加载速度到渲染效率的极致提速方案
前端·性能优化
锅包一切12 小时前
【蓝桥杯JavaScript基础入门】一、JavaScript基础
开发语言·前端·javascript·蓝桥杯