0
votes

Comment obtenir la valeur du champ de texte en dehors du widget

La classe de texte de texte xxx

Je l'utilise dans un autre fichier xxx

i cliquez sur le bouton, mais n'a rien obtenu de ce texte. Le résultat d'impression est xxx

peut-être que c'est la question du cycle de vie, mais je l'ai fait dans le widget, que se passe-t-il?


0 commentaires

3 Réponses :


0
votes

Peut-être que vous pouvez l'enregistrer dans une variable par exemple par ex_g. xxx

puis appelez-le d'une autre classe en créant un objet ou quelque chose


1 commentaires

ont utilisé cette variable pour l'enregistrer, mais je ne peux toujours pas l'obtenir, je me demande de cette façon de créer un objet filtré (par nouvelle classe) que ne peut obtenir sa variable créée, si j'entraîne une certaine valeur, à l'intérieur du widget TextFiled, je peux obtenir la valeur d'entrée (le num Obtenez l'entrée, mais je ne sais pas comment l'envoyer à l'extérieur, si j'utilise objecteInstance.controller.text pour accéder à la valeur, il semble que le widget n'est pas monté



0
votes

Je pense que vous ne devriez pas créer une nouvelle instance d'INPUTCONTAINER dans l'autre classe de widget, c'est faux.

Le moyen idéal est d'utiliser héritedwidget ou scopedmodel, un fournisseur, mais c'est plus compliqué p>

Vous pouvez essayer de créer un globalkey dans l'autre classe et accéder au contrôleur de texte INPUTContainerinner à partir de là P>

Remarque: modifiez votre _InputContainerinner à INPUTContainerinner P>

//put this inside your class widget, where u declare all the variables
final GlobalKey<InputContainerInner> containerKey;


Widget build(BuildContext context) {
    return Scaffold(
        body: new Column(
        children: <Widget>[
                //import the inputContainer class
                InputContainer(),
                new MaterialButton(
                    onPressed: () {
                        print(widget.containerKey.currentState.controller.text);
                        print(widget.containerKey.currentState.controller.input.num);

               }
            )
        ]
    )


3 commentaires

J'ai essayé votre réponse, le mot de passe .Containerkey est [labeledglobalkey # E7AC7] mais quand j'imprimer le mot de passe . >, le résultat est null , donc je me demande s'il s'agit de la question du cycle de vie du widget. Sinon, j'utilise ScopedModel pour enregistrer l'entrée et obtenir la valeur d'entrée en dehors du widget.


Je vois, merci. Étant donné que l'utilisation de ScopedModel fonctionne, je suppose que vous pouvez rester en utilisant. L'autre solution que je peux penser à définir votre contrôleur de texte au type statique, puis y accéder directement.


J'ai besoin de réutiliser la classe Textfield, de sorte que l'instance devrait avoir son propre contrôleur, merci



0
votes

exemple complet xxx

Obtenir la valeur de TextFormfield

chaîne texte = enchaîteaddresscontroller.text.tostring (),


1 commentaires

J'ai utilisé votre chemin dans mon code initial et je ne peux pas obtenir la valeur d'entrée, alors je pose cette question, HH