0
反応ネイティブのアプリケーションでは、value属性を使用すると入力できないフォームを作成しました。すべての新しい文字が削除され、テキストボックスは前のフォームの状態にリセットされます。ReactNative:TextInputはデータバインディングのvalue-attributeと奇妙な動作をします
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}
/>
このコードを使用して入力することはできません。私がvalue-attibuteを削除すると、すべて正常に動作します。しかし、私はこのデータバインディングを使用したいと思います。
データバインディングでTextInput-Elementsを処理するにはどうすればよいですか?
更新:
私はまた、任意の成功せず、これを試してみました:
<TextInput
style={[styles.input, styles.whiteFont]}
placeholder="Username"
placeholderTextColor="#FFF"
value={this.state.username}
ref= "username"
onChangeText={(username) => this.setState({username})}
/>
あなたは入力時に値を設定しますが、それを更新しません。したがって、テキスト入力の状態は決して更新されません。入力の値に状態を設定するonChangeイベントハンドラを使用してみてください – Maxwelll
イベントハンドラの構文は少しオフになっています... – Maxwelll
コードが私のために動作しているようですhttps://rnplay.org/apps/f1nKZQ –