2015-11-22 9 views
5

मुझे एक फेसबुक पर उदाहरण कोड मिला है जो मूल पृष्ठ पर क्लिक करता है जो दिखाता है कि एक क्लिक पर टेक्स्ट साफ़ करने के लिए setNativeProp का उपयोग कैसे करें, लेकिन मैं नहीं देख सकता कि इसे एकाधिक टेक्स्ट बॉक्स के साथ कैसे किया जाए। यहां कोड है:प्रतिक्रियात्मक स्पष्ट टेक्स्ट एकाधिक टेक्स्ट इनपुट बॉक्स

var App = React.createClass({ 
    clearText() { 
    this._textInput.setNativeProps({text: ''}); 
    }, 

    render() { 
    return (
     <View style={styles.container}> 
     <TextInput ref={component => this._textInput = component} 
       style={styles.textInput} /> 
     <TouchableOpacity onPress={this.clearText}> 
      <Text>Clear text</Text> 
     </TouchableOpacity> 
     </View> 
    ); 
    } 
}); 

रेफरी फ़ंक्शन में तय किया गया है, इसलिए हमेशा उसी टेक्स्ट इनपुट बॉक्स को लक्षित करेगा। मैं किसी भी टेक्स्ट इनपुट बॉक्स को इंगित करने के लिए फ़ंक्शन को कैसे बदल सकता हूं?

उत्तर

8

यह काम करना चाहिए। ध्यान दें कि TextInput पर रेफरी जिसे आप clearText functino से कॉल करते हैं उसे होना चाहिए।

var App = React.createClass({ 
    clearText(fieldName) { 
    this.refs[fieldName].setNativeProps({text: ''}); 
    }, 

    render() { 
    return (
     <View style={styles.container}> 
     <TextInput ref={'textInput1'} style={styles.textInput} /> 
     <TouchableOpacity onPress={() => this.clearText('textInput1')}> 
      <Text>Clear text</Text> 
     </TouchableOpacity> 
     <TextInput ref={'textInput2'} style={styles.textInput} /> 
     <TouchableOpacity onPress={() => this.clearText('textInput2')}> 
      <Text>Clear text</Text> 
     </TouchableOpacity> 
     </View> 
    ); 
    } 
}); 

विभिन्न क्षेत्रों को साफ़ करने के लिए मेरा उत्तर अपडेट किया गया।

+0

लेकिन आपके ऑनप्रेस के पास कोई मूल्य नहीं है? एक अलग टेक्स्ट इनपुट को साफ़ करने के लिए आप इसे किसी अन्य पर कैसे दबाएंगे? आपको अभी भी दो अलग-अलग फ़ंक्शन बनाने की आवश्यकता होगी। क्या आप दो टेक्स्टिनपूट और दो टच करने योग्यता बटन के साथ एक उदाहरण दिखा सकते हैं यह दिखाने के लिए कि यह केवल एक समारोह के साथ कैसे काम करेगा? – Hasen

+0

तदनुसार मेरा जवाब अपडेट किया गया। – eyal83

+0

ठीक है ठीक लाइनों के साथ इसकी तरह दिखता है लेकिन वास्तव में काम नहीं करता है। क्या यह आपके अंत में काम करता है? – Hasen

1

आप टेक्स्ट इनपुट के पाठ को साफ़ करने के लिए इस तरह कुछ भी उपयोग कर सकते हैं।

clearText(fieldName) { 
    this.refs[fieldName].clear(0); 
}, 
संबंधित मुद्दे