【问题标题】:What's the proper way of binding touchstart on React JS?在 React JS 上绑定 touchstart 的正确方法是什么?
【发布时间】:2014-03-30 07:54:38
【问题描述】:

我正在学习 React JS,到目前为止,我在源代码、测试或官方文档中找不到任何示例。在文档中,据说支持 touchStart 事件,但 handleTouchStart 不起作用。

我发现的唯一地方和实际工作的示例是在 react-touch 项目上。

以下代码有效,但这是唯一的绑定方式吗?对我来说,这似乎是一个便宜的解决方法。

var MyHeader = React.createClass({
  handleTouchStart: function() {
    console.log('handleTouchStart');
  },
  render: function() {
    return this.transferPropsTo(
        <header onTouchStart={this.handleTouchStart}>{title}</header>
    );
  }
};

真正正确的做法是什么?

【问题讨论】:

    标签: javascript touch-event reactjs


    【解决方案1】:

    从 React v0.14 开始,您不必再手动调用 React.initializeTouchEvents(true);

    http://facebook.github.io/react/blog/2015/10/07/react-v0.14.html#breaking-changes

    【讨论】:

      【解决方案2】:

      在玩触摸事件时,我将React.initializeTouchEvents(true) 添加到componentWillMount 组件生命周期方法中,它似乎可以正常工作。

      var MyHeader = React.createClass({
        componentWillMount: function(){
          React.initializeTouchEvents(true);
        },
        handleTouchStart: function() {
          console.log('handleTouchStart');
        },
        render: function() {
          return this.transferPropsTo(
              <header onTouchStart={this.handleTouchStart}>{title}</header>
          );
        }
      };
      

      【讨论】:

        【解决方案3】:

        嘿,伊莱!

        您必须在任何渲染之前调用 React.initializeTouchEvents(true)。在此处查看反应文档:http://facebook.github.io/react/docs/events.html#touch-events

        【讨论】:

        • 这不是问题。现在已修复,我发布的代码有效。我认为我的问题无效。根据命名约定,我的印象是onTouchStart={this.handleTouchStart} 是自动的。删除问题本身可以吗?我认为它不会像现在这样帮助任何人..
        • 作为附录,现在 React 已经通过 v0.12,initializeTouchEvents 已被删除,touchevents should supposedly just work
        • 您提供的更多教程链接现已损坏
        猜你喜欢
        • 1970-01-01
        • 2016-12-09
        • 1970-01-01
        • 2020-04-26
        • 2020-08-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-22
        相关资源
        最近更新 更多