javascript - 在 React.js 中使用 onKeyPress 而不是 onKeyUp 检测何时按下删除或退格键

标签 javascript reactjs

我需要在按下删除键或退格键时激活一项功能。该调用是在作为表格一部分的号码输入字段内进行的。这有效:

onKeyUp={((e) => this.onCero(e))}

这不起作用:

onKeyDown ={((e) => this.onCero(e))}

我正在调用的函数:

onCero = (e) => {
    e.preventDefault();
    if (e.key === "Delete" || e.key === "Backspace") {
        alert(e.key);
    }
};

我需要在按下按键时触发该函数,而不是使用 React 或 JavaScript 释放按键时触发该函数。

大家有什么想法吗?谢谢。

最佳答案

您可以使用经典 JavaScript 的事件监听器来实现此目的。

它会是这样的:

componentDidMount() {
  document.addEventListener('keydown', this.onCero, false);
}

componentWillUnmount() {
  document.removeEventListener('keydown', this.onCero, false);
}

然后就可以使用onCero函数中的关键代码了:

onCero = (e) => {
  if (e.keyCode === 27 || e.keyCode === 13) {
    alert(e.keyCode);
  }
};

关于javascript - 在 React.js 中使用 onKeyPress 而不是 onKeyUp 检测何时按下删除或退格键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52381040/

相关文章:

javascript - 值不使用 redux-form 渲染

javascript - vue合并两个对象数组

javascript - jQuery panzoom 缩放所有元素

javascript - Ajax 插入的内容在 DOM 中无法访问

javascript - 未捕获的类型错误 : Cannot set property of undefined

node.js - 将 react 脚本应用程序部署到 GAE 时出错

node.js - react npm start 中的 BROWSER 环境变量不选择自定义浏览器

reactjs - 如何指定 ReactCSSTransitionGroup 中项目的顺序?

javascript - Jquery Ajax文件上传完成函数

reactjs - 如何在 React-Native 的 Navigator 的多个场景之间共享状态