मैं अभिकर्मकों पर Esc keypress का पता कैसे लगाऊं? Jquery के समान बात
$(document).keyup(function(e) {
if (e.keyCode == 27) { // escape key maps to keycode `27`
// <DO YOUR WORK HERE>
}
});
एक बार पता लगने के बाद मैं नीचे के घटकों को जानकारी देना चाहता हूं। मेरे पास 3 घटक हैं जिनमें से अंतिम सक्रिय घटक को एस्केप कुंजी प्रेस पर प्रतिक्रिया करने की आवश्यकता है।
जब एक घटक सक्रिय हो जाता है तो मैं एक प्रकार का पंजीकरण करने के बारे में सोच रहा था
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)}/>
)
}
}
मेरा मानना है कि यह काम करेगा लेकिन मुझे लगता है कि यह कॉलबैक की तरह होगा। क्या इससे निपटने का कोई बेहतर तरीका है?