【发布时间】:2020-08-30 07:28:33
【问题描述】:
我有一个带有用户名输入的表单,我正在尝试验证用户名是否正在使用中或没有在去抖功能中。我遇到的问题是我的 debounce 似乎不起作用,因为当我输入“user”时,我的控制台看起来像
u
us
use
user
这是我的去抖动功能
export function debounce(func, wait, immediate) {
var timeout;
return () => {
var context = this, args = arguments;
var later = () => {
timeout = null;
if (!immediate) func.apply(context, args);
};
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) func.apply(context, args);
};
};
这是我在 React 组件中的调用方式
import React, { useEffect } from 'react'
// verify username
useEffect(() => {
if(state.username !== "") {
verify();
}
}, [state.username])
const verify = debounce(() => {
console.log(state.username)
}, 1000);
去抖动功能似乎是正确的?我在 react 中的调用方式有问题吗?
【问题讨论】:
标签: reactjs react-hooks debounce