gpt4 book ai didi

dart - 在 foreach 的小部件树中检测到重复的 GlobalKey

转载 作者:IT王子 更新时间:2023-10-29 07:05:35 25 4
gpt4 key购买 nike

我有一张带有标记循环的 map ,对于每个标记,我都尝试显示带有位置名称的 snackbar 。我有一个类似的代码。

     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,

当我加载这个页面时没有加载任何东西并且控制台返回

Duplicate GlobalKey detected in widget tree.

我认为错误出在脚手架上,对于每次迭代,它都试图设置相同名称的 globalkey。所以当它执行 foreach 时,我需要用不同的名称来识别这个键。知道我该怎么做吗?

最佳答案

只需删除 static来自您的 final GlobalKey<ScaffoldState> 的修饰符声明.

 final GlobalKey<ScaffoldState> scaffoldKey =
GlobalKey<ScaffoldState>();

关于dart - 在 foreach 的小部件树中检测到重复的 GlobalKey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53496055/

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