score:11

Accepted answer

you can always add event listeners manually in componentdidmount using a reference to your element. and remove them in componentwillunmount.

class example extends component {
  componentdidmount() {
    this.input.addeventlistener('keypress', this.onkeypress, { passive: false });
  }

  componentwillunmount() {
    this.input.removeeventlistener('keypress', this.onkeypress);
  }

  onkeypress(e) {
    console.log('key pressed');
  }

  render() {
    return (
     <someinputelement ref={ref => this.input = ref} />
    );
  }
}

score:3

just wrap your input with passive listener

    import {passivelistener} from 'react-event-injector';
    <passivelistener onkeypress={this.somelistener.bind(this)}>
        <someinputelement/>
    </passivelistener>

Related Query

More Query from same tag