【发布时间】:2022-01-20 20:29:29
【问题描述】:
这个错误只是在数据从加载屏幕成功传递之前的一段时间。
传递数据的加载界面:
如果我在这里打印实例,则不会出现错误
void setupWorldTime() async {
WorldTime instance = WorldTime(location: 'Jawa Timur', flag: 'jakarta.png', url: 'Asia/Jakarta');
await instance.getTime();
Navigator.pushReplacementNamed(context, '/home', arguments: {
'location': instance.location,
'flag': instance.flag,
'time': instance.time,
});
}
正在接收数据的主屏幕:
Map data = {};
@override
Widget build(BuildContext context) {
data = ModalRoute.of(context)!.settings.arguments as Map;
print(data['location']);
return Scaffold(
body: SafeArea(
child: Padding(
padding: const EdgeInsets.only(top: 50),
child: Column(
children: [
TextButton.icon(
onPressed: () {
Navigator.pushNamed(context, '/location');
},
icon: const Icon(Icons.edit_location),
label: const Text('Edit Location'),
),
const SizedBox(
height: 20,
),
Row(mainAxisAlignment: MainAxisAlignment.center, children: [
Text(
data['time'],
style: const TextStyle(
fontSize: 30,
),
),
]),
],
),
),
),
);
}
打印(数据['位置']);完美地打印数据,但在它之前立即显示上面的错误,这是否意味着打印方法在接收值之前期望数据的值为空?如何解决它
【问题讨论】:
标签: flutter dart asynchronous routes