我有一个带有标记循环的 map ,我尝试为每个标记显示带有位置名称的小吃店。我有类似的代码。
static final GlobalKey<ScaffoldState> scaffoldKey =
GlobalKey<ScaffoldState>();
for (int i = 0; i < list.length; i++) {
markers.add(new Marker(
width: 80.0,
height: 80.0,
point: list[1].values.elementAt(i),
builder: (ctx) => new Container(
child: new GestureDetector(
onTap: () {
scaffoldKey.currentState.showSnackBar(new SnackBar(
duration: const Duration(seconds: 5),
content: new Text(coords.keys.elementAt(i)),
action: SnackBarAction(
label: 'Ver',
onPressed: () {
// Some code to undo the change!
},
),
));
},
child: new Icon(Icons.home, color: Colors.red[300])))));
}
return new Scaffold(
key: scaffoldKey,
当我加载此页面时不加载任何内容,控制台返回
我认为错误是在脚手架上,对于每次迭代,它都试图设置相同的globalkey名称。因此,在执行foreach时,我需要使用其他名称来标识此键。知道我该怎么做吗?
最佳答案
只需从static
声明中删除final GlobalKey<ScaffoldState>
修饰符即可。
final GlobalKey<ScaffoldState> scaffoldKey =
GlobalKey<ScaffoldState>();
关于dart - 在foreach的小部件树中检测到重复的GlobalKey,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53496055/