reactjs - 如何通过输入 ReactJS 中的单词进行检测

标签 reactjs input dom-events onchange barcode

正常情况下,输入有一个 onChange 事件来检测更改(但按字符)

const handleChange = event => {
    setInputValue(event.target.value);
    //When typing "asking" => would be "a" "as" "ask", ....
  };

所以我想做的是,当通过硬件设备将条形码扫描到输入中时,只有在完全扫描了单词后才调用服务器的操作。这里的问题是它逐个字符地监听输入变化

React.useEffect(() => {
    if (!!inputValue.length) {
      handleScan();
    }
  }, [inputValue]);

这些代码将对输入中输入的每个字符调用handleScan,最终会多次调用handleScan()。我希望打一次电话

有没有办法等待一段时间,直到输入完全有一个单词(例如:“BarCode”),然后执行操作?

如有任何帮助,我们将不胜感激。

最佳答案

您可以利用 use-debounce Hook npm 包。

  import useDebounce from 'use-debounce'

  const [inputValue, setInputValue] = useState('Hello');
  // don't update until a second passes
  const [debouncedValue] = useDebounce(inputValue, 1000);

  const handleChange = event => {
    setInputValue(event.target.value);
    //When typing "asking" => would be "a" "as" "ask", ....
  };

  React.useEffect(() => {
    if (!! debouncedValue.length) {
      handleScan();
    }
  }, [debouncedValue]);

关于reactjs - 如何通过输入 ReactJS 中的单词进行检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63965200/

相关文章:

javascript - 通过 JavaScript 捕获 URL 更改事件

reactjs - mui-datepicker定制: Labeling Hours and Minutes Selection

reactjs - 配置多个下一个插件 : withMDX, withBundleAnalyzer

html - 您将使用什么 HTML/CSS 来创建带背景的文本输入?

javascript - 输入文本框为正数/负数/ float ,最大长度为 11

javascript - 为日期字段 extjs 添加自动斜杠

javascript - 如何使用 Modular Web SDK 版本 9 在 Cloud Firestore 集合中的文档中获取文档和嵌套集合?

reactjs - Redux Saga-将结果返回给被调用者函数,而不是分派(dispatch)新操作

javascript - Dojo 中的日期输入掩码

javascript - 在浏览器中模拟按键?