web-dev-qa-db-fra.com

Comment obtenir la valeur de TextFormfield in Flutter

Je voudrais obtenir une valeur d'entrée de TextFormfield. Et puis je veux le prendre dans Firebase.

Si j'en ai trois TextFormfield (nom_telad_nom/anniversaire/anniversaire), comment puis-je obtenir cette valeur et les jeter dans Firebase?

enter image description here

  • J'avais déjà connecté et obtenez des valeurs de Firebase.
4
tajihiro

Vous devez utiliser un TextEditingController par exemple:

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

Puis à l'intérieur de 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;
   },
),

Créez 3 champs, attribuez chacun controller à chaque champ. Ensuite, pour accéder à la valeur de chaque controller , vous devez utiliser la propriété text Propriété:

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

Vérifie ça:

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

14
Peter Haddad

Il y a 2 façons selon votre cas d'utilisation:

  1. TextField widget a une méthode de rappel onChange que vous pouvez utiliser pour obtenir de la valeur une fois la valeur modifiée.

  2. TextField a une propriété controller, auquel vous pouvez asservir TextEditingController instance et l'utiliser plus tard sur l'endroit où vous en avez besoin (par exemple sur un bouton Cliquez) comme ceci textFieldController.text qui détient la valeur actuelle d'un champ de texte

4
Aleksandar