如何从 Flutter 上的 TextFormField 获取值

taj*_*iro 8 dart firebase firebase-realtime-database flutter

我想从 TextFormField 获取输入值。然后我想把它带入 Firebase。

如果我有三个 TextFormField (last_name / first_name /birthday),我怎样才能获得这些值并将它们扔进火力基地?

在此处输入图片说明

  • 我已经连接并从 firebase 获取值。

Pet*_*dad 24

您需要使用TextEditingController例如:

TextEditingController lastNameController = TextEditingController();
TextEditingController firstNameController = TextEditingController();
TextEditingController birthdayController = TextEditingController();
Run Code Online (Sandbox Code Playgroud)

然后在里面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;
   },
),
Run Code Online (Sandbox Code Playgroud)

创建 3 个字段,将每个字段分配controller给每个字段。然后要访问 each 的值controller,您需要使用该text属性:

 DatabaseReference dbRef = FirebaseDatabase.instance.reference().child("Users");
 dbRef.child("id").set({
        "firstName": firstNameController.text
      })
Run Code Online (Sandbox Code Playgroud)

检查这个:

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


Ale*_*dar 5

根据您的用例,有两种方法:

  1. TextField小部件有一个回调方法onChange,您可以使用该方法在值更改后获取值。

  2. TextField有一个属性controller,您可以将其作为TextEditingController实例并稍后在您需要它的地方使用它(例如在单击按钮时),像这样textFieldController.text保存 textField 的当前值