Javascript 单击键代码时的反应未定义?
我知道用Javascript 单击键代码时的反应未定义?,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,我知道用keypress或keyDown我可以检查按下了哪个键,但用onClick我不能这样做 class App extends React.Component { handleClick = e => { console.log(e.keyCode); }; render() { return <h1 onClick={this.handleClick}>Hello CodeSandbox</h1>; } } 类应用程序扩展了R
keypress
或keyDown
我可以检查按下了哪个键,但用onClick
我不能这样做
class App extends React.Component {
handleClick = e => {
console.log(e.keyCode);
};
render() {
return <h1 onClick={this.handleClick}>Hello CodeSandbox</h1>;
}
}
类应用程序扩展了React.Component{
handleClick=e=>{
console.log(例如keyCode);
};
render(){
返回Hello CodeSandbox;
}
}
这里的问题是什么?keycode用于
键盘事件
而不是鼠标点击,无论如何都被认为是过时的。从: 不再建议使用此功能。虽然有些浏览器可能 仍然支持它,它可能已经从相关文件中删除 web标准,可能正在被删除,也可能只是 出于兼容性目的而保留。避免使用它,并更新现有的 如果可能的话,编码;请参阅本文档底部的兼容性表 页面以指导您的决策。请注意,此功能可能会停止使用 随时工作
react dispatches的
onClick
属性react.ClickEvent
没有keyCode
属性。由于这是一个鼠标事件,因此事件对象上存在与键盘相关的属性是不合逻辑的
与键盘相关的属性存在于React.KeyboardEvent上,该属性由React的键盘事件相关道具(如onChange
、onkeypup
、onkeypdown
等)调度
您好,这里您使用的是h1标记,在此标记中无法处理onClick函数。请在按钮标记中执行此操作,然后尝试使用它 您需要在onClick中发送一个参数,比如
onClick={(e)=>this.handleClick(e)}
this.handleClick(e)}>Hello CodeSandbox
对于特定的键码,请通过以下链接
keyCode是KeyboardEvent的属性,而不是ClickEvent的属性,因此它是未定义的。。。
<Button onClick={(e) => this.handleClick(e)}>Hello CodeSandbox</Button>