Is there a way to pass a Map() object to different stateful widget in different screens?

926 views Asked by At

For example, I have a simple Map() in main.dart.

And I have 3 screens with different stateful widgets,

screen1.dart => Screen1()

screen2.dart => Screen2()

screen3.dart => Screen3()

In main.dart

var people1 = {

name:”Peter”,
age:20,

}
Main(){
  runApp(screen1(people1));
}

=========================

screen1.dart

(imported main.dart)

class Screen1 extends StatefulWidget {
  @override
  _Screen1State createState() => _Screen1State();
}


class _Screen1State extends State<Screen1> {

  @override
  Widget build(BuildContext context) {
    return Container(Text(“${people.age}”);
  }
}

I cannot get the people.age in other screens. Even I imported the dart file. How can I transfer to stateful widget in other screens?

1

There are 1 answers

1
LonelyWolf On BEST ANSWER

You have to make constructor in your Screen1

class Screen1 extends StatefulWidget {  
  final Map people;

  const Screen1(this.people);

and then access it in your statefull class Screen1 like this

widget.people.age

if your Screen1 would be stateless then you can simply access it by

people.age