web-dev-qa-db-ja.com

FlutterのTextFormFieldから値を取得する方法

TextFormFieldから入力値を取得したいと思います。それから私はそれをFirebaseに取りたいです。

3つのTextFormField(last_name/first_name /誕生日)がある場合は、これらの値を取得してFireBaseに投げることができますか?

enter image description here

  • 私はすでにFirebaseから値を取得していました。
4
tajihiro

次のようにTextEditingControllerを使用する必要があります。

TextEditingController lastNameController = TextEditingController();
TextEditingController firstNameController = TextEditingController();
TextEditingController birthdayController = TextEditingController();
 _

その後、TextFormFieldの内側

child: TextFormField(
  controller: firstNameController,
  decoration: InputDecoration(
  labelText: "Enter First Name",
  enabledBorder: OutlineInputBorder(
  borderRadius: BorderRadius.circular(10.0),
 ),
 // The validator receives the text that the user has entered.
  validator: (value) {
  if (value.isEmpty) {
    return 'Enter last Name';
   }
return null;
   },
),
 _

3つのフィールドを作成し、それぞれ controller を各フィールドに割り当てます。次に、それぞれ controller にアクセスするには、 text プロパティ:

 DatabaseReference dbRef = FirebaseDatabase.instance.reference().child("Users");
 dbRef.child("id").set({
        "firstName": firstNameController.text
      })
 _

これをチェックして:

https://flutter.dev/docs/cookbook/forms/retrieve-input

14
Peter Haddad

あなたのユースケースに応じて2つの方法があります。

  1. TextFieldウィジェットには、値が変更されると、値が変更されるために使用できるコールバックメソッドonChangeがあります。

  2. TextFieldには、controllerインスタンスを実行し、必要な場所(たとえばボタンのクリックなど)を使用できるプロパティTextEditingControllerがあり、テキストフィールドの現在の値が保持されているtextFieldController.text

4
Aleksandar