私のreact-nativeアプリには、データを取得するAPIがあり、入力値内にデータを設定しているので、ユーザーはそれらの入力を編集して更新できるはずですが、入力を入力しようとすると何も入力せず、値はそのままです。TextInputコードは次のとおりです。
<TextInput
placeholder= Email
value={this.state.info.email}
onChangeText={email => this.setState({ email })}/>
ハンドラー関数にエラーがあると思います。 setStateを呼び出したときに、this.state.email
を更新しましたが、テキスト入力値でthis.state.info.email
を使用した場合、フィールドの新しい値(event.target.value
)の代わりに、イベントオブジェクトも電子メールに書き込みました。 )。このようなものを使用する必要があります。
onChangeHandler = event => {
const newEmail = event.target.value
this.setState({ info: {email: newEmail})}
}
<TextInput
placeholder= Email
value={this.state.info.email}
onChangeText={this.onChangeHandler.bind(this)} />
最初に状態を宣言してから、その状態をTextInputValueに適用する必要があります。
state: {
email: ''
}
初めてTextInputに追加する必要のあるAPI値を入力するには
componentDidMount(){
this.setState({email: this.props.info.email});
}
textInputは次のようになります。
<TextInput
placeholder= Email
value={this.state.email}
onChangeText={value=> this.setState({ email: value})}/>
これがうまくいくことを願っています。