1. ホーム
  2. アイオス

[解決済み】React Native:「next」キーボードボタンを押した後、次のTextInputを選択するには?

2022-04-18 03:17:47

質問

以下のように2つのTextInputフィールドを定義しました。

<TextInput 
   style = {styles.titleInput}
   returnKeyType = {"next"}
   autoFocus = {true}
   placeholder = "Title" />
<TextInput
   style = {styles.descriptionInput}          
   multiline = {true}
   maxLength = {200}
   placeholder = "Description" />

しかし、キーボードの "next" ボタンを押した後、私の react-native アプリは 2 番目の TextInput フィールドにジャンプしません。どうすれば実現できますか?

ありがとうございます。

解決方法は?

2番目に設定する TextInput にフォーカスを当てると、前の TextInput 's onSubmitEditing がトリガーされます。

これを試してみてください

  1. への参照の追加 2番目のTextInput

    ref={(input) => { this.secondTextInput = input; }}

  2. にフォーカス関数をバインドする。 最初のTextInput の onSubmitEditing イベントを使用します。

    onSubmitEditing={() => { this.secondTextInput.focus(); }}

  3. キーボードのちらつきを防ぐために、blurOnSubmit を false に設定することを忘れないでください。

    blurOnSubmit={false}

すべて完了すると、次のようになります。

<TextInput
    placeholder="FirstTextInput"
    returnKeyType="next"
    onSubmitEditing={() => { this.secondTextInput.focus(); }}
    blurOnSubmit={false}
/>

<TextInput
    ref={(input) => { this.secondTextInput = input; }}
    placeholder="secondTextInput"
/>