私はのリストを持っていますString
、例えば、
var moviesTitles = ['Inception', 'Heat', 'Spider Man'];
そしてmoviesTitles.map
、それらをTab
Widget
Flutterのsのリストに変換するために使用したかったのです。
私はのリストを持っていますString
、例えば、
var moviesTitles = ['Inception', 'Heat', 'Spider Man'];
そしてmoviesTitles.map
、それらをTab
Widget
Flutterのsのリストに変換するために使用したかったのです。
回答:
あなたが使用することができます
moviesTitles.map((title) => Tab(text: title)).toList()
例:
bottom: new TabBar(
controller: _controller,
isScrollable: true,
tabs:
moviesTitles.map((title) => Tab(text: title)).toList()
,
),
map<T>
返すIterable<T>
代わりにList<T>
Iterable
そのmap()
リターンは怠惰です。誰かが実際にそれを繰り返したときだけ、それはまだ評価されていません。を呼び出すtoList()
と、実際のリストが返されるだけでなく、この評価が強制されます。
私はフラッターに不慣れです。私は、この方法でもそれを達成できることを発見しました。
tabs: [
for (var title in movieTitles) Tab(text: title)
]
注:dartsdkのバージョンが2.3.0以上である必要があります。こちらをご覧ください
これと同じ方法を試しますが、関数マップの値が多い別のリストを使用します。私の問題は、returnステートメントを忘れることでした。これは非常に重要です :)
bottom: new TabBar(
controller: _controller,
isScrollable: true,
tabs:
moviesTitles.map((title) { return Tab(text: title)}).toList()
,
),
{}
、質問が1行の関数であると宣言されているためです
toList
ですか?