Javascript 如何设置';onKeyPress';a上的处理程序<;帆布>;你有什么反应?
我熟悉React及其事件系统,但似乎无法在Javascript 如何设置';onKeyPress';a上的处理程序<;帆布>;你有什么反应?,javascript,events,reactjs,Javascript,Events,Reactjs,我熟悉React及其事件系统,但似乎无法在元素上触发onKeyPress事件。事实上,我也不能让它在上开火 这是相关代码 class MyComponent extends React.Component { render() { return ( <canvas onKeyPress={() => console.log('fired')} /> ) } } 类MyComponent扩展了React.C
元素上触发onKeyPress事件。事实上,我也不能让它在
上开火
这是相关代码
class MyComponent extends React.Component {
render() {
return (
<canvas onKeyPress={() => console.log('fired')} />
)
}
}
类MyComponent扩展了React.Component{
render(){
返回(
console.log('fired')}/>
)
}
}
如果我将
更改为
,它可以正常工作,但不适用于
。这是否意味着react不支持画布元素上的按键事件?我忽略了什么
canvas.addEventListener('keydown', function(event) {
alert('keydown');
}, false);
检查是否可以触发上述事件:)只需将
tabIndex
分配给元素即可获得焦点
<canvas tabIndex="0" onKeyPress={ () => console.log( 'fired' ) } />
console.log('fired')}>
我感谢您的回答,但我希望使用react的合成事件系统可能取决于react版本或您使用的是TypeScript,但我需要使用tabIndex={0}
,因为tabIndex
需要一个数字。