reactjs에서 Esc 키 누르기를 어떻게 감지합니까? jquery와 비슷한 것
$(document).keyup(function(e) {
if (e.keyCode == 27) { // escape key maps to keycode `27`
// <DO YOUR WORK HERE>
}
});
일단 감지되면 구성 요소에 정보를 전달하고 싶습니다. 마지막 활성 구성 요소가 이스케이프 키 누름에 반응해야하는 세 가지 구성 요소가 있습니다.
구성 요소가 활성화되면 일종의 등록을 생각했습니다.
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)}/>
)
}
}
나는 이것이 효과가 있다고 믿지만 콜백과 더 비슷할 것이라고 생각합니다. 이것을 처리하는 더 좋은 방법이 있습니까?