gpt4 book ai didi

Flutter:传递到下一个屏幕的变量变为null

转载 作者:行者123 更新时间:2023-12-05 05:05:20 26 4
gpt4 key购买 nike

我想将一个变量传递给下一个屏幕,但它在下一个屏幕中变为 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 是字符串。

关于Flutter:传递到下一个屏幕的变量变为null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60604861/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com