Javascript 如何在reactjs应用程序中检测双移位按键事件?

Javascript 如何在reactjs应用程序中检测双移位按键事件?,javascript,reactjs,Javascript,Reactjs,尽管遵循stackoverflow线程,但我无法在我的reactjs应用程序中有效地检测到双移位按键事件 我补充说, componentDidMount() { document.addEventListener('keydown', this.handleKeyPress); } componentWillUnmount(){ document.removeEventListener("keydown", this.handleKeyPress); } handleKeyP

尽管遵循stackoverflow线程,但我无法在我的reactjs应用程序中有效地检测到双移位按键事件

我补充说,

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

componentWillUnmount(){
    document.removeEventListener("keydown", this.handleKeyPress);
}

handleKeyPress = (event) => {
    how to detect double shift key press, more efficiently?
}


因为使用React,您在同一个元素上有事件,所以我将自己这样做:

创建3个变量: 一个用于计数器(按下换档的频率),以及 一个表示按键之间经过的时间。 注意到Shift被双击的状态变量

如果触发了关键事件(顺便说一句:我会使用keyup),那么您:

  • 检查是否按下了换档键(按键代码检查)
  • (如果是)将计数器变量增加到
    1
    • 并将
      已用时间
      变量设置为当前时间戳
如果触发了其他按键事件,还应检查是否按下了shift键。 如果
,请检查
当前时间戳
减去
经过的时间戳
是否在您设置为注意双击的时间范围内(例如1秒)。 如果是,请将
双击
变量设置为1,如果不是,请清除计数器和
已用时间
变量

希望这能给你一个处理的方法。
在我在第一行发布的页面上,也有一个类似这种想法的小例子:

你说的双倍是什么意思??同时按下
shift
键或按下并释放shift键两次??