useEffect(() => {// 这边走接口 可以获取到totaldebounceSearch()}, [current, pageSize, params])const debounceSearch = useDebounce((e: Event) => {dispatch<scheduleAction>({type: 'schedule/getdata',payload: {dealerId: 3, current: current, pageSize: pageSize, ...params},});}, 800)// 防抖function useDebounce(fn: Function, delay: number) {const refTimer = useRef<number>();return function f(...args: any) {if (refTimer.current) {clearTimeout(refTimer.current);}refTimer.current = setTimeout(() => {fn(args);}, delay);}}
本身react里面的防抖看代码里面别人使用了,照葫芦画瓢没有效果,就扒拉到了这个代码,帮我解决了useEffect的依赖三个参数有一个变化就会触发接口问题,因为我的参数会三个或者两个同事变化,看到接口打印了很多次,请求了很多,影响性能,这个能解决我当下问题,推荐给大家!!!