web-dev-qa-db-ja.com

値のあるTextInputは値を変更しません

私のreact-nativeアプリには、データを取得するAPIがあり、入力値内にデータを設定しているので、ユーザーはそれらの入力を編集して更新できるはずですが、入力を入力しようとすると何も入力せず、値はそのままです。TextInputコードは次のとおりです。

<TextInput
   placeholder= Email
   value={this.state.info.email}
   onChangeText={email => this.setState({ email })}/>
4
Mary Jane

ハンドラー関数にエラーがあると思います。 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)} />
0
Mikhail Sidorov

最初に状態を宣言してから、その状態を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})}/>

これがうまくいくことを願っています。

0