In einer reaktionsnativen App habe ich ein Formular erstellt, das nicht eingegeben werden kann, wenn das value-Attribut verwendet wird. Jedes neue Zeichen wird entfernt und das Textfeld wird in den Zustand zurückgesetzt, der zuvor im Formular enthalten war.ReactNative: TextInput hat seltsames Verhalten mit dem value-Attribut bei Datenbindung
class LoginScreen extends Component {
constructor(props) {
super(props);
this.state = {
username: 'nobody',
password: '****'
};
}
render() {
return (
<View style={styles.container}>
.......
<View style={styles.inputContainer}>
<TextInput
style={[styles.input, styles.whiteFont]}
placeholder="Username"
placeholderTextColor="#FFF"
value={this.state.username}
/>
Mit diesem Code ist keine Eingabe möglich. Wenn ich den Wert-attitibute entferne, funktioniert alles gut. Aber ich möchte diese Datenbindung verwenden.
Wie kann ich mit TextInput-Elementen mit Datenbindung umgehen?
Update:
Ich habe auch versucht diese, ohne Erfolg:
<TextInput
style={[styles.input, styles.whiteFont]}
placeholder="Username"
placeholderTextColor="#FFF"
value={this.state.username}
ref= "username"
onChangeText={(username) => this.setState({username})}
/>
Sie stellen den Wert Ihrer Eingabe beim Rendern ein, aber Sie aktualisieren sie nicht onChange, daher wird der Status Ihrer Texteingabe nie aktualisiert. Versuchen Sie, einen onChange-Ereignishandler zu verwenden, der den Zustand auf den Wert der Eingabe setzt. – Maxwelll
Die Syntax Ihres Ereignishandlers ist leicht abgeändert ... – Maxwelll
Ihr Code scheint für mich zu funktionieren https://rnplay.org/apps/f1nKZQ –