1. ホーム
  2. flutter

[解決済み] TextFormFieldとTextFieldの違いは何ですか?

2022-12-28 10:33:22

質問

私はFlutter(とDart)の初心者です。オブジェクトを編集するフォームを作ろうとして、ネットで例やチュートリアルを検索したところ、この2つが使われているのを見かけました。

この2つの違いは何ですか?どちらを使うべきでしょうか?

どのように解決するのですか?

<ブロッククオート

もし Form を作成する場合、保存、リセット、または検証のために を使用します。 TextFormField . その他 単純なユーザ入力の取り込みの場合 TextField で十分です。

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

TextFieldウィジェットをFormFieldで包む便利なウィジェットです。

A Form の祖先は必要ではありません。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 コールバックを呼び出します。