javascript - 如何停止对每个输入事件的响应
问题描述
我正在尝试将搜索下拉项添加到表中。
问题陈述——
当我为每个输入事件按下退格请求调用和响应时第一次搜索后,是否有可能在搜索并按下退格之后,每个输入都不会响应?
解决方案
所以你想要做的是设置一个超时,这样 onChange 函数直到最后一次更改的 X 时间后才会执行。
import React, { useState, useEffect } from 'react';
export const App = () => {
const [value, setValue] = useState("");
const handleOnChange = (event) => {
setValue(event.target.value);
};
useEffect(() => {
const timeoutId = setTimeout(() => console.log(`I can see you're not typing. I can use "${value}" now!`), 1000);
return () => clearTimeout(timeoutId);
}, [value]);
return(
<>
<h1>{value}</h1>
<input onChange={handleOnChange} value={value} />
</>
);
};
推荐阅读
- typescript - 在打字稿中定义递归函数的类型
- python-3.x - Python中的列表项提取
- c# - 在c#中运行之间的持久文件路径
- terraform - Terraform 访问地图
- python - 关于使用 BFS 使用 Python 查找最短路径的问题
- visual-studio-code - 我收到错误,例如超出最大调用大小它可以正常运行,但是当调用 resultscreen 时,它会在模拟器中出现此错误
- android - 找不到符号 DaggerAppComponent,原因:java.lang.ExceptionInInitializerError
- git - gitingnore 没有忽略我的 node_modules 文件夹。虽然 .env 文件被忽略
- javascript - setTimeout 在 while 循环中无法正常工作
- flutter - 是否可以在飞镖的同步功能中使用等待