如何在reactjs点击事件中检测Click + [Shift,Ctrl,Alt]?

30

当用户点击+[Ctrl]时,我希望能够执行一些其他操作,但是似乎我无法检测到用户是否按下了 Ctrl 键。

以下是我复制的事件对象信息:

bubbles    :    false
cancelBubble    :    false
cancelable    :    false
currentTarget    :    react
defaultPrevented    :    false
eventPhase    :    2
isTrusted    :    false
path    :    Array[1]
returnValue    :    true
srcElement    :    react
target    :    react
timeStamp    :    5690056.695
type    :    "react-click"
我可以在arguments [0] -代理对象中看到ctrlKey属性,但是该对象无法访问(“非法访问”未捕获):

我可以看到 arguments[0]-Proxy Object 中 ctrlKey 属性,但该对象不可访问(未捕获的非法访问):

[[Target]]
:
SyntheticMouseEvent
_dispatchInstances:ReactDOMComponent
_dispatchListeners:(e)
_targetInst:ReactDOMComponent
altKey:false
bubbles:true
button:0
buttons:0
cancelable:true
clientX:275
clientY:315
ctrlKey:false

可能 重复 - oklas
3个回答

46

您的点击处理函数应该具有以下格式:

clickHandler: function (event, value) {

   event.stopPropagation();

   // In that case, event.ctrlKey does the trick.
   if (event.ctrlKey) {
        console.debug("Ctrl+click has just happened!");
   }
}

4
您可以在render()方法中使用下面的代码。
document.addEventListener('click', (e) => {
  if (e.ctrlKey) {
    console.log('With ctrl, do something...');
  }
});

-4
在此元素的 click 事件中,您可以检查在单击时是否按下了一个按钮(在此情况下,ctrlkeycode)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接