首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >截取ReactJS合成按键处理程序

问截取ReactJS合成按键处理程序
EN

Stack Overflow用户
提问于 2015-08-31 19:25:41
回答 1查看 356关注 0票数 0

我知道React为keydown、keyup和keypress事件实现了自己的事件委派系统。

我想要做的是在启动时注入我自己的应用程序范围的keydown处理程序,它在合成的keydown事件到达任何组件之前拦截它们。例如,我插入的keydown处理程序可能会检测并使用某些组合键,我可以使用这些组合键来发出自定义调试事件。我特别希望避免在组件键处理程序中检测此类事件。

这有可能吗?如果可能,有人能给我指个指南吗?

EN

回答 1

Stack Overflow用户

发布于 2015-08-31 22:09:53

也许这并不像你想的那么复杂?或者,除非我理解错误,否则您可以在app.js中使用document.addEventListener (这是您的组件的顶级)。

下面是一段代码:

代码语言:javascript
复制
var Comp1 = React.createClass({
  _handleKeyDown: function(e) {
    console.clear();
    console.log(e.target.value);
  },
  render: function() {
    return (
      <div>
        your name:
        <input type="text" onKeyDown={this._handleKeyDown} />
      </div>
    );
  }
});

var Comp2 = React.createClass({
  render: function() {
    return (
      <div>
        this is component 2
      </div>
    );
  }
});

var Main = React.createClass({
  componentDidMount: function() {
    document.addEventListener("keydown", this._handleKeyDown);
  },
  _handleKeyDown: function(e) {    
    console.log('keydown from main');
  },
  render: function() {
    return (
      <div>
        <Comp1 />
        <Comp2 />
      </div>
    );
  }
});

React.render(<Main />, document.getElementById('app'));

这是jsbin链接:http://jsbin.com/saxocujovu/edit?js,console,output

这就是你要找的吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32310124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档