【发布时间】:2021-04-01 04:50:59
【问题描述】:
我想将地图的一个对象从一个颤动屏幕传递到另一个
【问题讨论】:
-
这在documentation中有很好的解释
我想将地图的一个对象从一个颤动屏幕传递到另一个
【问题讨论】:
这是一个示例。
屏幕一
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,),));
},
),
),
);
}
}
屏幕二
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"]}"),
),
);
}
}
编辑
如果你愿意,你也可以使用StatelessWidget
【讨论】: