I want to bind to close the active react bootstrap popover on escape
press. Here is the code
_handleEscKey: function(event) {
console.log(event);
if (event.keyCode == 27) {
this.state.activePopover.hide();
}
},
componentWillMount: function() {
BannerDataStore.addChangeListener(this._onchange);
document.addEventListener("click", this._handleDocumentClick, false);
document.addEventListener("keyPress", this._handleEscKey, false);
},
componentWillUnmount: function() {
BannerDataStore.removeChangeListener(this._onchange);
document.removeEventListener("click", this._handleDocumentClick, false);
document.removeEventListener("keyPress", this._handleEscKey, false);
},
But nothing is getting logged in the console when I press any key. I have tried to listen that on window also and with different cases 'keypress', 'keyup', etc but it seems I am doing something wrong.
You should use keydown
and not keypress
.
Keypress (deprecated) is usually used only for keys that produce a character output as per the docs
The keypress event is fired when a key is pressed down and that key normally produces a character value
The keydown event is fired when a key is pressed down.