Mam listę String
s np.
var moviesTitles = ['Inception', 'Heat', 'Spider Man'];
i chciałem użyć moviesTitles.map
do konwersji ich na listę Tab
Widget
sw Flutter.
functional-programming
dart
flutter
AbdulMomen عبدالمؤمن
źródło
źródło
toList
?map<T>
zwracaIterable<T>
zamiast aList<T>
Iterable
comap()
wraca, jest leniwe. Nie jest jeszcze oceniany, tylko wtedy, gdy ktoś go faktycznie iteruje. WywołanietoList()
, oprócz zwrócenia aktualnej listy, wymusza tę ocenę.Jestem nowy w trzepotaniu. Przekonałem się, że można to również osiągnąć w ten sposób.
tabs: [ for (var title in movieTitles) Tab(text: title) ]
Uwaga: Wymaga wersji sdk dart> = 2.3.0, patrz tutaj
źródło
Próbuję tej samej metody, ale z inną listą z większą liczbą wartości w mapie funkcji. Moim problemem było zapomnienie oświadczenia o zwrocie. To jest bardzo ważne :)
bottom: new TabBar( controller: _controller, isScrollable: true, tabs: moviesTitles.map((title) { return Tab(text: title)}).toList() , ),
źródło
{}
tej kwestii jest jedna linia funkcjaTak, Ty też możesz to zrobić w ten sposób
List<String> listTab = new List(); map.forEach((key, val) { listTab.add(val); }); //your widget// bottom: new TabBar( controller: _controller, isScrollable: true, tabs: listTab , ),
źródło
...data.map((title) { return Text(title);}).toList(),
U mnie działa dobrze
źródło