2016-03-02 53 views
6

我最近從React 0.10升級到了0.14。最初我得到一個錯誤,React.initializeTouchEvents不是一個函數。我閱讀了一些文檔,聲稱在最新版本的React中需要進行初始化,所以我放棄了它。但是,現在,我的項目中沒有觸摸事件正在註冊。我需要做些什麼才能讓他們再次工作?觸摸事件在Chrome移動模擬器中被ReactJS升級破壞

下面我介紹了一些簡單的測試代碼,我寫這些代碼是爲了嘗試解決這個問題。目前沒有觸摸事件正在被註冊。

我主要的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移動模擬器獲得它的工作

回答

0

TouchTap不再作爲事件提供。請read the docs on TouchEvents選擇適當的事件。您可以綁定:

onTouchCancel onTouchEnd onTouchMove onTouchStart 
+0

我將上面的代碼中的'onTouchTap'改爲'onTouchEnd',並且還沒有發生任何事 – kat

0

如果您只是想捕獲點擊事件,請使用onClick。 onTouchStart,onTouchEnd等事件。是拖放事件。對於滑動,你需要像react-hammerjs這樣的第三方庫。