Làm cách nào để phát hiện phím Esc trên reactjs? Điều tương tự với jquery
$(document).keyup(function(e) {
if (e.keyCode == 27) { // escape key maps to keycode `27`
// <DO YOUR WORK HERE>
}
});
Sau khi phát hiện, tôi muốn chuyển các thành phần thông tin xuống. Tôi có 3 thành phần trong đó thành phần hoạt động cuối cùng cần phản ứng với phím thoát.
Tôi đã nghĩ đến một kiểu đăng ký khi một thành phần hoạt động
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>
)
}
}
và trên tất cả các thành phần
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)}/>
)
}
}
Tôi tin rằng điều này sẽ hiệu quả nhưng tôi nghĩ nó sẽ giống như một cuộc gọi lại hơn. Có cách nào tốt hơn để xử lý điều này không?