我正在使用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逻辑的相应部分有任何想法?现在,无论我使用了单击和击键(或缺少击键)的任何组合,我的控制台都将显示“单击”。