2016-03-02 12 views
6

में रीडजेएस अपग्रेड के साथ टूटी हुई घटनाएं हाल ही में मैंने प्रतिक्रिया 0.10 से 0.14 प्रतिक्रिया करने के लिए अपग्रेड किया। शुरुआत में मुझे एक त्रुटि मिल रही थी कि React.initializeTouchEvents कोई फ़ंक्शन नहीं था। मैंने कुछ दस्तावेज पढ़े जो दावा करते हैं कि इस प्रारंभिकरण की आवश्यकता प्रतिक्रिया के सबसे हाल के संस्करण में चली गई थी, इसलिए मैंने इसे दूर कर दिया। अब, हालांकि, मेरी परियोजना में कोई स्पर्श कार्यक्रम पंजीकृत नहीं हो रहा है। उन्हें फिर से काम करने के लिए मुझे क्या करने की ज़रूरत है?क्रोम मोबाइल एमुलेटर

नीचे मैंने कुछ सरल परीक्षण कोड शामिल किए हैं जिन्हें मैंने इस समस्या के समाधानों को हल करने के लिए लिखा था। वर्तमान में कोई स्पर्श कार्यक्रम पंजीकृत नहीं हो रहा है।

मेरा मुख्य 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 अब उपलब्ध नहीं है । हालांकि, मुझे अभी भी एक ही समस्या है।

संपादित करें: यह मोबाइल डिवाइस से ही ठीक काम करता है। हालांकि, मैं इसे क्रोम मोबाइल एमुलेटर

उत्तर

0

TouchTap से किसी ईवेंट के रूप में उपलब्ध नहीं है। उचित घटना का चयन करने के लिए कृपया read the docs on TouchEvents देखें। आप बाध्य कर सकते हैं:

onTouchCancel onTouchEnd onTouchMove onTouchStart 
+0

मैंने उपरोक्त कोड में 'ऑन टचटैप' को 'ऑन टचएंड' में बदल दिया, और अभी भी कुछ भी नहीं हो रहा है – kat

2

रूप Mathletics कहा, onTouchTap एक घटना के रूप में उपलब्ध नहीं है। हालांकि, आप इस प्लगइन को चीजों को आसान बनाने की कोशिश कर सकते हैं https://github.com/zilverline/react-tap-event-plugin

+0

धन्यवाद, मैं इसे देख लूंगा। किसी भी विचार पर क्यों टचएंड मेरे लिए काम नहीं करता है? – kat

0

यदि आप बस टैप ईवेंट ऑनक्लिक पर कब्जा करना चाहते हैं। टचस्टार्ट पर घटनाएं, टच एंड ect। घटनाओं को खींचें और छोड़ें। स्वाइप के लिए आपको एक तृतीय पक्ष लाइब्रेरी की आवश्यकता होगी जैसे प्रतिक्रिया-हैमरज।

संबंधित मुद्दे