Dart: 映射一个列表(list.map)

我有一个 String的列表,例如,

var moviesTitles = ['Inception', 'Heat', 'Spider Man'];

并希望使用 moviesTitles.map将它们转换成 Flutter 的 Tab Widget列表。

234245 次浏览

你可以利用

moviesTitles.map((title) => Tab(text: title)).toList()

例如:

    bottom: new TabBar(
controller: _controller,
isScrollable: true,
tabs:
moviesTitles.map((title) => Tab(text: title)).toList()
,
),

我尝试使用相同的方法,但是使用的是在函数映射中具有更多值的不同列表。我的问题是忘记了退货声明。这一点非常重要:)

 bottom: new TabBar(
controller: _controller,
isScrollable: true,
tabs:
moviesTitles.map((title) {return Tab(text: title)}).toList()
,
),

是的,你也可以这样做

 List<String> listTab = new List();
map.forEach((key, val) {
listTab.add(val);
});


//your widget//
bottom: new TabBar(
controller: _controller,
isScrollable: true,
tabs: listTab
,
),

我是新手,我发现一个人也可以这样做。

 tabs: [
for (var title in movieTitles) Tab(text: title)
]

注意: 它要求 dart sdk 版本 > = 2.3.0,看这里

tabs: [...data.map((title) { return Text(title);}).toList(), extra_widget],


tabs: data.map((title) { return Text(title);}).toList(),

我觉得挺好的