javascript - Ako nastavím handler 'onKeyPress' na <canvas> v Reacte?
Som oboznámený s Reactom a jeho systémom udalostí, ale zdá sa, že sa mi nedarí spustiť udalosť onKeyPress na prvku <canvas>. V skutočnosti sa mi nedarí ju spustiť ani na prvku <div>.
Tu je príslušný kód
class MyComponent extends React.Component {
render() {
return (
<canvas onKeyPress={() => console.log('fired')} />
)
}
}
Funguje to v poriadku, ak zmením <canvas> na <input>, ale nefunguje to pre <div>. Znamená to, že React jednoducho nepodporuje udalosti keyPress na prvkoch canvas? Čo prehliadam?
Odpoveď č. 1
Jednoducho priraďte tabIndex k elementu, aby ste získali fokus.
<canvas tabIndex="0" onKeyPress={ () => console.log( 'fired' ) } />
Odpoveď č. 2
canvas.addEventListener('keydown', function(event) {
alert('keydown');
}, false);
Skontrolujte, či môžete spustiť vyššie uvedenú udalosť :)
