如何在reactjs上檢測Esc鍵?與jquery類似的東西如何檢測Esc鍵在React中按下以及如何處理它
$(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)}/>
)
}
}
我相信這會工作,但我認爲這將是更像是一個回電話。有沒有更好的方法來處理這個問題?
您是否沒有助焊劑實現來存儲哪個是活動組件,而不是這樣做? –
@BenHare:我還是很新的。我正在研究遷移到React的可行性。我沒有嘗試過助焊劑,所以你建議我應該考慮助焊劑的解決方案。 PS:如何檢測ESC按鍵? – Neo
爲了澄清,您是否正在尋找文檔級別的按鍵檢測,如第一個代碼塊?或者這是一個輸入字段?你可以做任何一個,我只是不知道如何構建答案。這裏是一個快速的文檔級別,例如:http://codepen.io/anon/pen/ZOzaPW –