2016-03-02 5 views
6

Ich habe kürzlich von React 0.10 auf React 0.14 aktualisiert. Anfangs bekam ich einen Fehler, dass React.initializeTouchEvents keine Funktion war. Ich habe eine Dokumentation gelesen, in der behauptet wird, dass die Notwendigkeit für diese Initialisierung in der neuesten Version von React verschwunden ist, also habe ich damit aufgehört. Jetzt registrieren jedoch keine Touch-Ereignisse in meinem Projekt. Was muss ich tun, damit sie wieder arbeiten können?Berührungsereignisse mit ReactJS-Aktualisierung in Chrome Mobile-Emulator unterbrochen

Im Folgenden habe ich einige einfache Test-Code enthalten, die ich geschrieben habe, um Lösungen für dieses Problem zu testen. Momentan werden keine Touch-Ereignisse registriert.

Meine Haupt js-Datei:

/** @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); 
} 

Meine TestButton Komponente:

/** @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; 

Keine Erkenntnisse stark

EDIT geschätzt wäre: Ich habe versucht, onTouchEnd Wechsel seit onTouchTap ist nicht mehr verfügbar . Allerdings habe ich immer noch das gleiche Problem.

EDIT: Dies funktioniert gut von einem mobilen Gerät selbst. Ich kann es jedoch nicht vom Chrome Mobile Emulator aus aufrufen.

Antwort

0

TouchTap ist nicht länger als Ereignis verfügbar. Bitte wählen Sie read the docs on TouchEvents, um das entsprechende Ereignis auszuwählen. Sie können binden:

onTouchCancel onTouchEnd onTouchMove onTouchStart 
+0

Ich habe 'onTouchTap' im obigen Code in' onTouchEnd' geändert, und immernoch passiert nichts – kat

2

Wie Mathletics sagte onTouchTap ist als ein Ereignis nicht verfügbar. Sie können diesem Plugin jedoch einen Versuch geben, die Dinge einfacher zu machen. https://github.com/zilverline/react-tap-event-plugin

+0

Danke, ich werde mich darum kümmern. Irgendwelche Gedanken darüber, warum onTouchEnd auch nicht für mich funktioniert? – kat

0

Wenn Sie nur ein Tippereignis erfassen möchten, verwenden Sie onClick. Die Ereignisse onTouchStart, onTouchEnd ect. sind Drag & Drop-Ereignisse. Für Swipes benötigen Sie eine Drittanbieter-Bibliothek wie react-hammerjs.

Verwandte Themen