我熟悉React及其事件系统,但我似乎无法在<canvas>
元素上触发onKeyPress事件。事实上,我无法在<div>
上触发它。
以下是相关代码
class MyComponent extends React.Component {
render() {
return (
<canvas onKeyPress={() => console.log('fired')} />
)
}
}
如果我将<canvas>
更改为<input>
,但对<div>
无效,则可以正常工作。这是否意味着react只是不支持canvas元素上的keyPress事件?我在俯瞰什么?
答案 0 :(得分:2)
只需将tabIndex
指定给元素即可获得焦点。
<canvas tabIndex="0" onKeyPress={ () => console.log( 'fired' ) } />
答案 1 :(得分:0)
canvas.addEventListener('keydown', function(event) {
alert('keydown');
}, false);
检查您是否可以解雇上述事件:)