setNativeProps Verändern Sie den Wert für die Text-Komponente Reagieren Nativen Direkte Manipulation
Möchte ich direkt den Wert aktualisieren einer Komponente aufgrund von performance-Gründen.
render(){
<View>
<Text style={styles.welcome} ref={component => this._text = component}>
Some Text
</Text>
<TouchableHighlight underlayColor='#88D4F5'
style={styles.button}>
<View>
<Text style={styles.buttonText}
onPress={this.useNativePropsToUpdate.bind(this)}>
Iam the Child
</Text>
</View>
</TouchableHighlight>
</View>
}
Dies ist die Methode, die ich verwenden, um die Aktualisierung der text-Komponente. Ich weiß nicht, ob ich die richtigen attribute/wie, um herauszufinden, welche attribute gesetzt werden:
useNativePropsToUpdate(){
this._text.setNativeProps({text: 'Updated using native props'});
}
Im wesentlichen versucht den gleichen Ansatz Folgen, der von diesem Beispiel:
https://rnplay.org/plays/pOI9bA
Bearbeiten:
Wenn ich versuche, die explizit zuweisen, wird der aktualisierte Wert:
this._text.props.children = "updated";
( Ich weiß, das dies der richtige Weg, Dinge zu tun, die in RN ). Ich bekomme die Fehlermeldung "Cannot assign auf" nur Lesen " - Eigenschaft 'Kinder' von Objekt'#'"
Also vielleicht das ist, warum es kann nicht aktualisiert werden, die in RN für einige Grund ?
- Verwenden Sie eine
TextInput
statt und stellen Sie den Wert mitthis._text.setNativeProps( { text: 'Hi There!' } )
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Anstatt zu versuchen zu ändern, den Inhalt
<Text>
Komponente. Ich habe gerade ersetzt, mit<TextInput editable={false} defaultValue={this.state.initValue} />
gehalten und der rest des Codes die gleichen. Wenn jemand weiß, wie Sie den Wert ändern können, der<Text>
mitsetNativeProps
ODER eine andere Methode der direkten Manipulationen. Post die Antwort und schlecht Lesen und akzeptieren.<Text>
weil es verwendet eineNSTextStorage
und nicht einNSString
Eigenschaft. Check this out: github.com/facebook/react-native/blob/master/Libraries/Text/..., Wenn es eine Möglichkeit zur Konvertierung einer Zeichenfolge Wert auf eineNSTextStorage
Wert, dann könnten wir auch manipulieren das Textfeld, aber meines Wissens können wir nicht.Den text-tag muss nicht ein
text
prop, sonicht funktioniert.
Aber den text-tag hat eine
style
prop, sofunktioniert.
Code-snippet, um einen reset der Wert in einem Textfeld zu leeren.
überprüfen Sie dieses Beispiel hier
Als setNativeProps nicht die Lösung der Zweck, zu ändern, den Inhalt
<Text />
habe ich folgenden Ansatz und arbeitet gut. Erstellen Sie Einfach Reagieren Komponente wie unten...var Text
oderreturn <Txt
?