我有一个地图结构,我想DropdownMenuItem<String>为每个条目创建一个。.map().toList()我尝试做的就是像这样打电话
var _languages = {
'en': 'English /',
'fr': 'French ',
'nl': 'Dutch',
'es': 'Spanish'
};
languages.map((key, value) => DropdownMenuItem(
value: key,
child: Text(v)
)).toList();
Run Code Online (Sandbox Code Playgroud)
(如果您使用的是 Windows,则 US/GB 将打印为文本,如果您使用的是任何其他平台,则它将是标志)。现在的问题有两个:
我如何正确地从地图创建列表?这是不可能的,因为地图不是有序集合?
Map<K, V>.map返回另一个 Map,这不是您想要的。
Iterable相反,您可以从Map 第一个创建一个,然后使用Iterable.map,这会返回另一个Iterable:
var menuItems = languages.entries
.map((mapEntry) =>
DropdownMenuItem(value: mapEntry.key, child: Text(mapEntry.value)))
.toList();
Run Code Online (Sandbox Code Playgroud)
或者:
var menuItems = [
for (var mapEntry in languages.entries)
DropdownMenuItem(value: mapEntry.key, child: Text(mapEntry.value)),
];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4635 次 |
| 最近记录: |