如何在 React 中检测 Esc 按键以及如何处理它
2022-08-30 01:44:20
如何检测 reactjs 上的 Esc 按键?与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)}/>
)
}
}
我相信这会起作用,但我认为它更像是一个回调。有没有更好的方法来解决这个问题?