Search code examples
flutterflutter-navigation

How do I get multiple data from another page?


I am using the code final username = await Navigator.push(context, MaterialPageRoute(builder: (context) => CreateAccount())); to get username data from a different page CreateAccount. How can I structure it to also get, say bio data from another textfield on the same CreateAccount page?


Solution

  • @osodo While navigating back from CreateAccount page you can pass data to previous page. Have a look on below code.

    Create ProfileModel

    class ProfileModel{
      String username;
      String bio;
      String email; 
      ProfileModel({this.username,this.bio,this.email});
    }
    

    Code for Page -1

    final userModel = await Navigator.push(context, MaterialPageRoute(builder: (context) => CreateAccount()));
    if(userModel != null && userModel is ProfileModel){
       print(userModel.username);
       print(userModel.bio);
       print(userModel.email);
    }
    

    Code for CreateAccount page

    void submit(){
     String username;
       /*
         Implement your other logic here ..
       */
       var user = ProfileModel(username:"John", bio:"Some random bio", email:"john@gmail.com");
       Navigator.pop(context,user);
    }