在使用像React这样的框架时直接访问文档Object是不好的做法。
我正在使用外部条形码扫描仪,我想检测何时扫描数字并填充特定字段。我想避免跟踪哪个字段是焦点。
render(){
....
document.onkeypress = (e) => {
e = e || window.event;
const digit = e.key;
if(e.target.nodeName === 'BODY' && digit.match(/[0-9]/i)){
console.log(digit);
}
};
答案 0 :(得分:2)
document.onkeypress
都可能是糟糕的做法。相反,document.addEventListener("keypress", ...)
(并确保只执行一次。)
另外,在render
中挂钩事件处理程序肯定不是最佳做法。 如果您出于某种原因需要将处理程序挂钩到document
,您可以在componentDidMount
中执行此操作(并在componentWillUnmount
中将其删除)