我想将变量传递到下一个屏幕,但是它将null
在下一个屏幕中显示。我有什么错吗?我的代码如下。
first_screen.dart
onTap: () {
print(doc); // Prints out Instance of `DocumentSnapshot` on log
Navigator.of(context).pushNamed('/second', arguments: doc);
},
second_screen.dart
class SecondScreen extends StatefulWidget {
final DocumentSnapshot doc;
SecondScreen({
this.doc,
});
@override
State<StatefulWidget> createState() {
return _SecondScreenStateState();
}
}
class _SecondScreenState extends State<SecondScreen> {
@override
void initState() {
super.initState();
print(widget.doc); // Prints out null here
}
我尝试了其他数据类型,但所有变量在下一个屏幕中都为空。
您必须传递这样的参数:
Navigator.of(context).pushNamed('/second', arguments: doc);
对于您来说是正确的,但是,请使用ModalRoute.of()方法返回带有以下参数的当前路由:
final doc = ModalRoute.of(context).settings.arguments as String;
我以为doc
是String。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句