TextInputコンポーネントに送信アクションのフィルタリングを追加して、予期しないエラーを防ぐ方法を紹介します。onSubmitEditing()コールバックは、パスワードの表示と非表示の切り替えなど、複数のキーボードアクションに応じて呼び出されます。どのアクションからコールバックがトリガーされたかを確認しないと、ユーザーがパスワードの表示状態を切り替えただけでビジネスロジック(ネットワークへの接続など)が実行されることがあります。
前提条件
アプリに修正が必要かどうかの判断
次の両方に当てはまる場合、この修正をアプリに実装する必要があります。keyboardTypeがpasswordに設定されたTextInputを使用していて、キーボードUIにパスワードの表示/非表示を切り替えるボタンがある。e.nativeEvent.submitActionの値をチェックせずにonSubmitEditing()を処理している。
submitActionのチェックの追加
ビジネスロジックを実行する前に、onSubmitEditing()コールバックでe.nativeEvent.submitActionをチェックしてフィルタリングを行います。これにより、意図したアクション(「done」など)でのみコードがトリガーされます。
その他のsubmitAction値の処理
「done」以外の送信アクションに応答することもできます。submitActionの値は、returnKeyTypeの値と、auxOptionsを使用して設定されたカスタムの値に対応します。次の例は、doneアクションの処理に加えて、パスワードの表示切り替えを処理する方法を示しています。
submitActionが取り得る値には、「go」、「search」、「next」、「previous」があります。

