A top-level declarative React keybinding component

Nov 23, 2018
A top-level declarative React keybinding component


A top-level declarative React keybinding component, usable with ES6, no mixin or weird stuff.

react-keybinding-component is a component that will help you set up keybindings in your app. For the moment, only simple key events are supported (one key only, keyup, keydown). It's just a less dirty way of using key events instead of having care of them with componentDidMount() in multiple components.


Import it in your project:

import KeyBinding from 'react-keybinding-component'; // ES6 var KeyBinding = require('react-keybinding-component'); // ES5

Get the eventKey keyCode and log it

<KeyBinding onKey={ (e) => { console.log(e.keyCode) } } />

Get the eventKey keyCode and log it on keyUp on the window element

<KeyBinding onKey={ (e) => { console.log(e.keyCode) } } type='keyup' elem={ window } />

Have a look at options.


All properties except onKey are optional.

PropertyDescriptionDefault value
onKey (required)the function executed after a key event() => {}
typekeyup or keydown'keydown'
targetthe element you want to attach the event to, it can be an existing DOM element or a CSS selector (in that case, you will need to add a tabIndex='0' to your element, otherwise the event won't be caught)document
preventInputConflictprevent onKey from firing if you have an onChange on an input, a textarea or a selectfalse
preventDefaultprevent event defaultfalse
preventPropagationprevent event propagationfalse