用Reactjs拾取Ctrl / Shift + Click

时间:2018-11-22 17:58:32

标签: javascript reactjs properties mouseevent

我正在使用onClick事件中的event.ctrlKey和event.shiftKey来允许菜单中的多个选择。为简单起见,我用一些控制台日志替换了此处代码中要执行的操作。在下面的代码中,如果在按住shift或Control的同时单击后放入断点并检查事件的执行中,我将找不到该事件的ctrl / shift布尔值,并且代码确定了逻辑的前两个部分为假并显示“点击”。

方法

handleOnClick = (e, id) => {
  if (e.ctrlKey) {
    console.log('control ')
  } else if (e.shiftKey) {
    console.log('shift ')
  } else {
    console.log('click ')
  }
}

执行

<ListItem
 key={q}
 onClick={() => this.handleOnClick(event, q.get('_id'))}
>

我在研究中注意到,看来 KeyboardEvent (不是MouseEvent)确实是具有shiftKey和ctrlKey布尔属性的对象,但是我发现的所有示例都没有似乎解决了这种差异。

在单击期间按住Shift或控制键时,是否有人对我如何使代码触及handleOnClick逻辑的相应部分有任何想法?现在,无论我使用了单击和击键(或缺少击键)的任何组合,我的控制台都将显示“单击”。

0 个答案:

没有答案