Bonjour à tous j'ai un problème qui me rendra fou bientôt, je n'arrive pas a faire passer des variables entrées par mon utilisateur d'une page à une autre, j'ai beau regarder des videos sur comment le faire , mais sa fonctionne pas

5 réponses


voici la page ou l'utilisateur doit entrer ses informations pour se loguer a l'application

import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:tentative_formulaire_konamicash/pages/gamepagealias.dart';

class LoginPage extends StatefulWidget {
  const LoginPage({super.key});

  @override
  State<LoginPage> createState() => _LoginPageState();
}

class _LoginPageState extends State<LoginPage> {
  final _formKey = GlobalKey<FormState>();
  final controlleremail = TextEditingController();
  final controllerpassword = TextEditingController();
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('namse')),
      body: Form(
          key: _formKey,
          child: Column(
            children: [
              Container(
                  child: TextFormField(
                controller: controlleremail,
              )),
              Container(
                child: TextFormField(
                  controller: controllerpassword,
                ),
              ),
              ElevatedButton(
                  onPressed: () {
                    Navigator.push(
                      context,
                      PageRouteBuilder(
                        pageBuilder: (context, animation, secondaryAnimation) =>
                            PageAlias(
                                formKey: GlobalKey<FormState>(),
                                controlleremail: TextEditingController(),
                                controllerpassword: TextEditingController()),
                      ),
                    );
                  },
                  child: Text('connexion'))
            ],
          )),
    );
  }
}

voici la page ou je souhaite utiliser les donner,il s'agit de controlleradressemail

import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';

class PageAlias extends StatefulWidget {
  const PageAlias(
      {super.key,
      required GlobalKey<FormState> formKey,
      required this.controlleremail,
      required this.controllerpassword});
  final TextEditingController controlleremail;
  final TextEditingController controllerpassword;

  @override
  State<PageAlias> createState() => _PageAliasState();
}

class _PageAliasState extends State<PageAlias> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
//juste en dessous je souhaite utiliser controllermail,et flutter me dis que texteditingcontroller peut pas etre assigner au type string
        title: Text(widget.controlleremail),
      ),
    );
  }
}

Bonjour, il semblerait que tu doives utiliser la propriété .text de ton texteditingcontroller pour obtenir la chaîne de caractères (string) :

appBar: AppBar(
 title: Text(widget.controlleremail.text),

justement j'ai essayé sa mais il me sorte un long message :This app is linked to the debug service: ws://127.0.0.1:50661/He7rJJ2KIQE=/ws
Debug service listening on ws://127.0.0.1:50661/He7rJJ2KIQE=/ws
Connecting to VM Service at ws://127.0.0.1:50661/He7rJJ2KIQE=/ws
A message on the flutter/lifecycle channel was discarded before it could be handled.
This happens when a plugin sends messages to the framework side before the framework has had an opportunity to register a listener. See the ChannelBuffers API documentation
A message on the flutter/lifecycle channel was discarded before it could be handled.

j'ai aucune idée de ce qu'il se passe pourtant sur les videos sa marche super bien

Ah zut, aucune idée du coup car je m'y connais vraiment pas en dart/flutter...