TextFormFieldとTextFieldの違いは何ですか? 質問する

TextFormFieldとTextFieldの違いは何ですか? 質問する

私は Flutter (および Dart) を初めて使用しており、オブジェクトを編集するためのフォームを作成しようとしたときに、オンラインで例とチュートリアルを検索し、これら両方が使用されていることを知りました。

これら 2 つの違いは何ですか? どちらを使用すればよいですか?

ベストアンサー1

Form保存、リセット、または検証操作が必要な を作成する場合は、を使用しますTextFormField。それ以外の場合は、単純なユーザー入力キャプチャでTextField十分です。

TextFormFieldウィジェットと統合されますForm

これは、FormField で TextField ウィジェットをラップする便利なウィジェットです。

先祖Formは必須ではありません。フォームは、複数のフィールドを一度に保存、リセット、または検証する

フォームなしで使用するには、コンストラクターに GlobalKey を渡し、GlobalKey.currentState を使用してフォーム フィールドを保存またはリセットします。

サンプル:

TextFormField(
  autovalidateMode: AutovalidateMode.always
  decoration: const InputDecoration(
    icon: Icon(Icons.person),
    hintText: 'What do people call you?',
    labelText: 'Name *',
  ),
  onSaved: (String value) {
    // This optional block of code can be used to run
    // code when the user saves the form.
  },
  validator: (String value) {
    return value.contains('@') ? 'Do not use the @ char.' : null;
  },
)

TextField、これは統合されていない基になるテキスト フィールドですForm

テキスト フィールドは、onChangedユーザーがフィールド内のテキストを変更するたびにコールバックを呼び出します。ユーザーがフィールドへの入力を完了したことを示すと (たとえば、ソフト キーボードのボタンを押すなど)、テキスト フィールドはコールバックを呼び出しますonSubmitted

おすすめ記事