gpt4 book ai didi

flutter - 类型 'List' 不是类型 'List>' 的子类型

转载 作者:IT王子 更新时间:2023-10-29 06:52:49 25 4
gpt4 key购买 nike

我正在做一个 flutter 项目,我将一个对象数组(List> 数组)从我的 Bloc 传递给流生成器。如果我打印对象,它打印得很好,但是当我尝试在 DropdownMenuItem 中映射它们时,它会抛出上述错误。因此,如果我在类中以相同的格式创建一个虚拟数组并访问它,我不会收到错误。不确定我在这里遗漏了什么,代码如下。

          StreamBuilder(
stream: _bLoc.getJsonArray,
builder: (context, snapshot) {
return snapshot.hasData
? new Container(
width: 150,
color: Theme.of(context).primaryColor,
child: new DropdownButton<String>(
items: snapshot.data.map((value) =>
new DropdownMenuItem<String>(
value: value["distance"],
child: new Text(value["distance"]),
)
).toList(),
onChanged: (_) {},
),
)
: Container();
}),

我的 json 结构如下。

 [
{"distance": "12km","price": "200LKR",},
{"distance": "2km","price": "100LKR",},
{"distance": "132km","price": "340LKR",}
]

最佳答案

这就是您必须如何使用 map 作为列表构建。您必须确定要返回的类型。特别是你可以做这样的事情

StreamBuilder(
stream: _bLoc.getJsonArray,
builder: (context, snapshot) {
return snapshot.hasData
? new Container(
width: 150,
color: Theme.of(context).primaryColor,
child: new DropdownButton<String>(
items: snapshot.data.map<DropdownMenuItem<String>>((value) =>
new DropdownMenuItem<String>(
value: value["distance"],
child: new Text(value["distance"]),
)
).toList(),
onChanged: (_) {},
),
)
: Container();
}),

PS 在尝试获取选定的 DropdownMenuItem 时,您可能会在此处捕获一些错误。考虑使用自定义生成的列表而不是映射

关于flutter - 类型 'List<dynamic>' 不是类型 'List<DropdownMenuItem<String>>' 的子类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56757479/

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