ฉันจะตรวจจับการกดแป้น Esc บน reactjs ได้อย่างไร สิ่งที่คล้ายกับ jquery
$(document).keyup(function(e) {
if (e.keyCode == 27) { // escape key maps to keycode `27`
// <DO YOUR WORK HERE>
}
});
เมื่อตรวจพบแล้วฉันต้องการส่งต่อข้อมูลลงส่วนประกอบ ฉันมีส่วนประกอบ 3 ส่วนซึ่งส่วนประกอบที่ใช้งานสุดท้ายต้องตอบสนองต่อการกดแป้น Escape
ฉันกำลังคิดถึงการลงทะเบียนประเภทหนึ่งเมื่อส่วนประกอบเริ่มทำงาน
class Layout extends React.Component {
onActive(escFunction){
this.escFunction = escFunction;
}
onEscPress(){
if(_.isFunction(this.escFunction)){
this.escFunction()
}
}
render(){
return (
<div class="root">
<ActionPanel onActive={this.onActive.bind(this)}/>
<DataPanel onActive={this.onActive.bind(this)}/>
<ResultPanel onActive={this.onActive.bind(this)}/>
</div>
)
}
}
และส่วนประกอบทั้งหมด
class ActionPanel extends React.Component {
escFunction(){
//Do whatever when esc is pressed
}
onActive(){
this.props.onActive(this.escFunction.bind(this));
}
render(){
return (
<input onKeyDown={this.onActive.bind(this)}/>
)
}
}
ฉันเชื่อว่าสิ่งนี้จะได้ผล แต่ฉันคิดว่ามันจะเหมือนการโทรกลับมากกว่า มีวิธีใดที่ดีกว่านี้ในการจัดการกับปัญหานี้หรือไม่?