I want to pass an object of the map from one flutter screen to another
            Asked
            
        
        
            Active
            
        
            Viewed 1,300 times
        
    0
            
            
        - 
                    This is explained very well in the [documentation](https://flutter.dev/docs/cookbook/navigation/passing-data) – Chad Lamb Dec 22 '20 at 13:26
1 Answers
0
            
            
        Here is a sample.
Screen One
class ScreenOne extends StatefulWidget {
  ScreenOne({Key key}) : super(key: key);
  @override
  _ScreenOneState createState() => _ScreenOneState();
}
class _ScreenOneState extends State<ScreenOne> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Screen One"),
      ),
      body: Container(
        child: FlatButton(
          child: Text("Goto Screen Two"),
          onPressed: () {
            Map<String, dynamic> map = {
              "field": "value",
              "another_field": 1,
            };
            Navigator.of(context).push(MaterialPageRoute(builder: (context) => ScreenTwo(receivedMap: map,),));
          },
        ),
      ),
    );
  }
}
Screen Two
class ScreenTwo extends StatefulWidget {
  Map<String, dynamic> receivedMap;
  ScreenTwo({this.receivedMap});
  @override
  _ScreenTwoState createState() => _ScreenTwoState();
}
class _ScreenTwoState extends State<ScreenTwo> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Screen Two"),
      ),
      body: Container(
        child: Text("Screen one sent me this : ${widget.receivedMap["field"]} and ${widget.receivedMap["another_field"]}"),
      ),
    );
  }
}
Edit
You can also use StatelessWidget if you want
 
    
    
        dm_tr
        
- 4,265
- 1
- 6
- 30
