DEV Community

Deenan Djigbenou
Deenan Djigbenou

Posted on

how to send variables from a page to another flutter/dart

Hello I am currently trying to pass variable entries by the user during the connection step to the main page of my application, but I encounter an error and I do not know what is causing it, in my page main (gamepage) in the child of the boy I want to display the address of the controller but flutter tells me that this variable is not defined!!!!
You are my only hope

import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter/widgets.dart';
import 'package:http/http.dart' as http;
import 'package:tentative_formulaire_konamicash/stfgamepage.dart';

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

  @override
  State<register> createState() => _registerState();
}

class _registerState extends State<register> {
  final _formKey = GlobalKey<FormState>();
  final controllermail = TextEditingController();
  final controllerpassword = TextEditingController();

  Future<void> login(String mail, String password) async {
    try {
      var url = Uri.parse('https://konamicash.com/authentification_app');
      var response = await http.post(
        url,
        headers: {
          "Accept": "application/json",
          "Access-Control-Allow-Origin": "*"
        },
        body: {
          "the_mail": mail,
          "the_pasword": password,
        },
      );
      if (response.statusCode == 200) {
        var data = jsonDecode(response.body);
        print('OK: $data');
        if (data['authentification'] == 0) {
        } else {
          Navigator.push(
              context,
              PageRouteBuilder(
                pageBuilder: (context, animation, secondaryAnimation) => Gaming(
                  formKey: GlobalKey<FormState>(),
                  controlleradressemail:TextEditingController(),
                  controllermotdepasse : TextEditingController(),
                ),
              ));
        }
      }
    } catch (e) {
      print('An error occurred: $e');
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('nami'),
      ),
      body: Form(
        key: _formKey,
        child: Column(
          children: [
            Container(
              child: TextFormField(
                decoration: const InputDecoration(labelText: 'mail'),
                controller: controllermail,
              ),
            ),
            Container(
              child: TextFormField(
                decoration: const InputDecoration(labelText: 'password'),
                controller: controllerpassword,
              ),
            ),
            SizedBox(
              width: double.infinity,
              height: 50,
              child: ElevatedButton(
                onPressed: () {
                  final mail = controllermail.text;

                  final password = controllerpassword.text;

                  login(mail, password);
                },
                child: const Text('Connexion'),
              ),
            ),
          ],
        ),
      ),
    );
  }
}

Enter fullscreen mode Exit fullscreen mode

Top comments (1)

Collapse
 
deenan_djigbenou_ba0ce10e profile image
Deenan Djigbenou


```import 'package:flutter/material.dart';
import 'package:tentative_formulaire_konamicash/pages/navbar.dart';
//this is the page i want my users to be redirected and where i want to get the variables

class Gaming extends StatefulWidget {
Gaming(
{super.key,
required GlobalKey formKey,
required this.controlleradressemail,
required this.controllermotdepasse});
final TextEditingController controlleradressemail;
final TextEditingController controllermotdepasse;

@override
State createState() => _GamingState();
}

class _GamingState extends State {
@override
Widget build(BuildContext context) {
return Scaffold(
drawer: const Navbar(),
appBar: AppBar(
title: const Text('Namis.com'),
backgroundColor: Colors.pink,
),
body: const Center(
child: Text(
//here is where flutter tells me that controlleradressemail is not defined and where i //want to display the content of the variable
controlleradressemail,
style: TextStyle(fontSize: 40.0),
),
),
);
}
}





Enter fullscreen mode Exit fullscreen mode