如何在<canvas>上设置'onKeyPress'处理程序?

时间:2015-10-14 05:06:35

标签: javascript events reactjs

我熟悉React及其事件系统,但我似乎无法在<canvas>元素上触发onKeyPress事件。事实上,我无法在<div>上触发它。

以下是相关代码

class MyComponent extends React.Component {
    render() {
        return (
            <canvas onKeyPress={() => console.log('fired')} />
        )
    }
}

如果我将<canvas>更改为<input>,但对<div>无效,则可以正常工作。这是否意味着react只是不支持canvas元素上的keyPress事件?我在俯瞰什么?

2 个答案:

答案 0 :(得分:2)

只需将tabIndex指定给元素即可获得焦点。

<canvas tabIndex="0" onKeyPress={ () => console.log( 'fired' ) } />

答案 1 :(得分:0)

canvas.addEventListener('keydown', function(event) {
    alert('keydown');
        }, false);

检查您是否可以解雇上述事件:)