我知道使用keypress
或keyDown
可以检查按下了哪个键,但是使用onClick
却无法这样做。
class App extends React.Component {
handleClick = e => {
console.log(e.keyCode);
};
render() {
return <h1 onClick={this.handleClick}>Hello CodeSandbox</h1>;
}
}
https://codesandbox.io/s/ovwn9z6owz
这是什么问题?
答案 0 :(得分:4)
键码是用于KeyboardEvent
的,而不是鼠标单击的键,并且仍然被认为已作废。
从KeyboardEvent.keyCode
MDN:
不再推荐此功能。虽然某些浏览器可能 仍然支持它,它可能已经从相关内容中删除了 网络标准,可能正在被删除,或者可能只是 出于兼容性目的保留。避免使用它,并更新现有的 代码(如果可能);请参阅此底部的兼容性表 指导您做出决定的页面。请注意,此功能可能会停止 随时工作。
答案 1 :(得分:3)
没有onClick
属性的react派发React.ClickEvent
的{{1}}道具。由于这是鼠标事件,因此事件对象上与键盘相关的属性的存在是不合理的。
与键盘相关的属性存在于keyCode
上,这是由react的与键盘事件相关的道具(例如React.KeyboardEvent
,onChange
,onKeyup
等)调度的。
答案 2 :(得分:0)
您好,您使用的是h1标签,在此标签中无法处理onClick功能,请在Button标签中进行操作,然后尝试使用。
,您需要在onClick内部发送参数,例如onClick={(e) => this.handleClick(e)}
<Button onClick={(e) => this.handleClick(e)}>Hello CodeSandbox</Button>
对于特定的keyCode,请通过以下链接