У меня есть список String
, например,
var moviesTitles = ['Inception', 'Heat', 'Spider Man'];
и хотел использовать moviesTitles.map
для преобразования их в список Tab
Widget
s во Flutter.
functional-programming
dart
flutter
AbdulMomen عبدالمؤمن
источник
источник
toList
?map<T>
возвращаетIterable<T>
вместоList<T>
Iterable
чтоmap()
возвращается, ленив. Он еще не оценивается, только когда кто-то его действительно повторяет. ВызовtoList()
, помимо возврата фактического списка, форсирует эту оценку.Я новичок в трепете. Я обнаружил, что можно добиться этого и таким образом.
tabs: [ for (var title in movieTitles) Tab(text: title) ]
Примечание: требуется версия dart sdk> = 2.3.0, см. Здесь
источник
Я пробую тот же метод, но с другим списком с большим количеством значений в карте функций. Моя проблема заключалась в том, чтобы забыть оператор возврата. Это очень важно :)
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 , ),
источник
...data.map((title) { return Text(title);}).toList(),
У меня все работает нормально
источник