繁体   English   中英

如何在 React 中添加被动事件侦听器?

[英]How to add passive event listeners in React?

要设置事件侦听器,例如在某些反应输入元素上的 onKeyPress 侦听器,我们执行以下操作:

<SomeInputElement onKeyPress={this.someListener.bind(this)}>

现在,我该怎么做才能让我的someListener被动?

您始终可以使用对元素的引用在componentDidMount手动添加事件侦听器。 并在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} />
    );
  }
}

只需用被动侦听器包装您的输入

    import {PassiveListener} from 'react-event-injector';
    <PassiveListener onKeyPress={this.someListener.bind(this)}>
        <SomeInputElement/>
    </PassiveListener>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM