在React Js中,停止输入时调用函数

14 浏览
0 Comments

在React Js中,停止输入时调用函数

这个问题已经有了回答:

如何执行防抖动?

我尝试在停止输入时做一些事情,我尝试了这个代码但没有工作

const handler=(e)=>{
  let time;
  clearTimeout(time);
  time = setTimeout(() => {
     console.log("click");
  }, 2000);
}

admin 更改状态以发布 2023年5月24日
0
0 Comments

你存储超时ID的变量需要在函数之外定义,否则每次处理程序被调用时都会得到一个新的未定义变量。

话虽如此,你可能正在重新发明轮子.

0
0 Comments

我假设您想在 2 秒内有更多输入时取消计时器。目前,您的时间变量的作用域仅限于处理程序函数,因此当函数完成执行时,该值将丢失。

试着使用状态来跟踪您的计时器:

const [timerID, setTimerID] = useState(null);
const handler = (e) => {
  clearTimeout(timerID);
  const id = setTimeout(() => console.log("click"), 2000);
  setTimerID(id)
}
return 

0