Ich habe eine Liste von String
s, z.
var moviesTitles = ['Inception', 'Heat', 'Spider Man'];
und wollte verwenden moviesTitles.map
, um sie in eine Liste von Tab
Widget
s in Flutter zu konvertieren .
Ich habe eine Liste von String
s, z.
var moviesTitles = ['Inception', 'Heat', 'Spider Man'];
und wollte verwenden moviesTitles.map
, um sie in eine Liste von Tab
Widget
s in Flutter zu konvertieren .
Antworten:
Sie können verwenden
moviesTitles.map((title) => Tab(text: title)).toList()
Beispiel:
bottom: new TabBar(
controller: _controller,
isScrollable: true,
tabs:
moviesTitles.map((title) => Tab(text: title)).toList()
,
),
map<T>
ein Iterable<T>
statt einesList<T>
Iterable
, was map()
zurückkommt, ist faul. Es wird noch nicht ausgewertet, nur wenn jemand es tatsächlich wiederholt. Das Aufrufen toList()
erzwingt zusätzlich zur Rückgabe einer tatsächlichen Liste diese Auswertung.
Ich bin neu im Flattern. Ich fand, dass man es auch so erreichen kann.
tabs: [
for (var title in movieTitles) Tab(text: title)
]
Hinweis: Die dart sdk-Version muss> = 2.3.0 sein ( siehe hier)
Ich versuche die gleiche Methode, aber mit einer anderen Liste mit mehr Werten in der Funktionszuordnung. Mein Problem war, eine Rückgabeerklärung zu vergessen. Dies ist sehr wichtig :)
bottom: new TabBar(
controller: _controller,
isScrollable: true,
tabs:
moviesTitles.map((title) { return Tab(text: title)}).toList()
,
),
{}
der Frage deklariert ist, ist eine
toList
?