我是新来的。我正在制作一个应用程序,显示给定/指定位置的当前时间。我想使用路由访问数据,但这是我得到的错误:
无法无条件调用方法“[]”,因为接收方可以为“null”。
代码为:
import 'package:flutter/material.dart';
class Home extends StatefulWidget {
const Home({super.key});
@override
State<Home> createState() => _HomeState();
}
class _HomeState extends State<Home> {
Map data = {} ;
@override
Widget build(BuildContext context) {
final data = ModalRoute.of(context)!.settings.arguments;
print(data);
return Scaffold(
body: SafeArea(
child: Column(
children: [
TextButton.icon(
onPressed: (){
Navigator.pushNamed(context, '/location');
},
icon: Icon(Icons.edit_location),
label: Text('Edit Location'),
),
SizedBox(height: 20.0),
Row(
children: [
Text(
data['loaction']
),
],
),
],
)
),
);
}
}
字符串
1条答案
按热度按时间y53ybaqx1#
这是因为来自
ModalRoute.of(context)!.settings.arguments
的数据可能为null,并且您不能在null值上使用map运算符,因此初始修复可以是:将data['loaction']
替换为data ?? this.data['location']
,将Map data = {}
替换为Map data = {'location': 'initial value'};
,然后尝试