触摸在Chrome移动模拟器中使用ReactJS升级破坏的事件

时间:2016-03-02 19:33:56

标签: javascript mobile reactjs ontouchevent touch-event

我最近从React 0.10升级到了React 0.14。最初我收到React.initializeTouchEvents不是函数的错误。我读了一些文档,声称在最新版本的React中对初始化的需求已经消失了,所以我废除了它。但是,现在,我的项目中没有注册触摸事件。我需要做些什么才能让它们重新开始工作?

下面我已经包含了一些简单的测试代码,我编写这些代码来试用这个问题的解决方案。目前尚未注册任何触摸事件。

我的主要js文件:

/** @jsx React.DOM */

var React = require('react');
var ReactDOM = require('react-dom');
var TestButton = require('components/common/testButton');

try {
  var lander = (<TestButton/>);
  ReactDOM.render(lander, document.getElementById('myContainer'));
}
catch (e) {
  error.errorHandler(e);
}

我的TestButton组件:

/** @jsx React.DOM */

var React = require('react');

var TestButton = React.createClass ({
  getInitialState: function () {
    return {
      text: "Click Here!",
    };
  },
  toggle: function () {
    console.log('in toggle');
    if (this.state.text == "Click Here!"){
      this.setState({
        text: "Good Job!",
      });
    } else {
      this.setState({
        text: "Click Here!",
      });
    }
  },
  render: function () {
    return (
      <div onTouchEnd={this.toggle}>
          {this.state.text}
      </div>
      );
  },
});
module.exports = TestButton;

非常感谢任何见解

编辑:我尝试更改为onTouchEnd,因为onTouchTap不再可用。但是,我仍然遇到同样的问题。

编辑:从移动设备本身可以正常工作。但是,我无法通过Chrome移动模拟器

开始使用它

3 个答案:

答案 0 :(得分:2)

正如Mathletics所说,onTouchTap不能用作事件。但是,您可以尝试使用此插件以简化操作https://github.com/zilverline/react-tap-event-plugin

答案 1 :(得分:0)

strlen(a)不再作为活动提供。请read the docs on TouchEvents选择适当的活动。你可以绑定:

TouchTap

答案 2 :(得分:0)

如果您只想捕获点击事件,请使用onClick。事件onTouchStart,onTouchEnd等。是拖放事件。对于滑动,您需要第三方库,如react-hammerjs。