【发布时间】:2021-10-02 21:00:55
【问题描述】:
为什么我在 Flutter 中的下一个屏幕上的变量值为 null?
文本值 widget.place.texty 在我的小部件中完美运行。我正在解析 JSON 并获取信息。
但是,如果我尝试将此值传递到下一个屏幕,我会突然得到一个 NULL 或一个完整的空白区域。
这是我要创建的第二个页面:
class SecondRoute extends StatelessWidget {
final Place? place;
const SecondRoute({Key? key, this.place}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Second Route"),
),
body: Center(
child: ElevatedButton(
onPressed: () {
Navigator.pop(context);
},
Text("${place?.texty ??""}"),
),
),
);
}
还有:
class PlaceDetail extends StatefulWidget {
final Place? place;
PlaceDetail({Key? key, this.place}) : super(key: key);
@override
_PlaceDetailState createState() {
return _PlaceDetailState();
}
}
我尝试按照此处的文档进行操作:https://flutter.dev/docs/cookbook/navigation/navigation-basics
导航本身可以工作,但尝试使用相同的变量在屏幕 2 上显示来自屏幕 1 的数据似乎不起作用。
这就是我构建按钮(在第一页上)以点击到第二页的方式。
Center(
child: ElevatedButton(
child: const Text('Open route'),
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => const SecondRoute()),
);
},
),
),
【问题讨论】: