【发布时间】:2018-09-09 06:17:56
【问题描述】:
我正在编写一个 ReactJS 应用程序,我需要能够使用专用的条形码扫描仪读取条形码。
我完全迷失了这个。我在 github 上找到了一些组件,但我在弄清楚如何从扫描仪获取输入方面有点失败。我知道它的输出只是一个字符串,但我必须能够随时扫描产品,而无需关注textfield 或其他组件。
工作流程:
扫描产品 -> 获取扫描值 -> 调用休息服务
扫描仪只是一个简单的 USB 设备。
最好的办法是在扫描事件中加入dispatch 和action。
我非常感谢即使是很小的想法或提示!
编辑:我也在使用 Redux
【问题讨论】:
-
在不知道如何从浏览器环境访问此设备的情况下,这与 react 或 redux 根本没有关系。更多的硬件接口问题。该设备是否有适用于您的操作系统的驱动程序?是否有 UI,或者如果它必须是 JS,你可以用 Node 做这个吗?
-
扫描仪在按钮按下时读取条形码。如果我在打开记事本的情况下执行此操作,它会像我做
CTRL+V一样粘贴读数。所以我想某处必须有一个键盘事件。在那种情况下,我认为这与反应有关。它没有驱动程序/用户界面,它只是将读取的任何内容插入到文本字段中。如果我按下按钮并以这种方式阅读,我实际上想过在文本字段上做一个focus。尽管无需任何其他操作而仅读取条形码会很酷。 -
嗯,如果这个东西只是使用操作系统的复制粘贴命令,你只需要确保正确的文本输入(或区域)被聚焦,然后在输入上使用 React 的
onChange处理程序即可有价值的东西。您将在此处理程序中调用this.props.asyncReduxAction(changeEvent.target.value),并可能在请求正在进行时禁用输入。 -
如果您必须等待多个复制粘贴事件直到条形码完成,我会尝试使用
<input type="text" onChange={(e) => console.log(e.target.value)} />进行调试。只要设备没有为您提供任何将焦点(制表符、输入、转义)从输入中移开的键码,它就应该可以工作。然后,您可以检查长度 === 13 以检测它是否已完成并且 API 调用可以开始。
标签: javascript reactjs redux react-redux