Dart 使用键和值从映射创建小部件列表

Dart 使用键和值从映射创建小部件列表,dart,flutter,Dart,Flutter,如果我说一个SimpleDialog(),它接受子项[],我想从映射中填充它,我该怎么做?我需要键和值来创建子小部件 const optionsMap = { 111:"First option", 222:"Second option", } return SimpleDialog( title: Text('Choose one'), children: // I don't know what to put here // I w

如果我说一个
SimpleDialog()
,它接受
子项[]
,我想从
映射中填充它,我该怎么做?我需要键和值来创建子小部件

const optionsMap = {
    111:"First option",
    222:"Second option",
}
return SimpleDialog(
    title: Text('Choose one'),
    children: // I don't know what to put here
              // I want to have widgets based on optionsMap keys and values
)

我通过在return语句上方预先创建一个
列表解决了这个问题,但为了方便起见(并且在Dart中变得更好),我想知道是否有一种方法可以内联完成它。

更新答案以合并@lrn的注释

您可以使用
map

常量选项映射={
111:“第一选择”,
222:“第二种选择”,
}     
返回SimpleDialog(
标题:文本(“选择一个”),
子项:optionsMap.entries.map((条目){
var w=文本(entry.value);
doSomething(entry.key);
返回w;
}).toList());
;

您可以使用Map.Map()函数获取新映射,然后使用此新映射的值:
子项:options.Map((entry){return MapEntry(entry.key,/*此处从entry.key和entry.value*/)创建小部件;}).values.toList()
。使用
列表视图
并将地图转换为列表应该可以工作。我希望能够访问键和值。稍微简单一点:
选项map.entries.map((entry){var w=Text(entry.value);doSomething(key);return w;})
。因此,与其创建映射并仅使用值,不如将值创建为iterable。@irn谢谢,但您是否尝试过编写代码?我想您仍然需要使用
toList()
我不知道的
条目
属性,这使得处理地图变得更加容易。