我有一个包含用户名输入框的表单,我正在尝试在防抖函数中验证该用户名是否已被使用。 问题是我的防抖似乎没有起作用,因为当我键入“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中调用它有问题吗?
防抖函数似乎是正确的?我在react中的调用方式有问题吗?