String
예를 들어, 목록이 있습니다 .
var moviesTitles = ['Inception', 'Heat', 'Spider Man'];
Flutter에서 s moviesTitles.map
목록으로 변환하는 데 사용하고 싶었습니다 Tab
Widget
.
String
예를 들어, 목록이 있습니다 .
var moviesTitles = ['Inception', 'Heat', 'Spider Man'];
Flutter에서 s moviesTitles.map
목록으로 변환하는 데 사용하고 싶었습니다 Tab
Widget
.
답변:
당신이 사용할 수있는
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)
]
참고 : dart sdk 버전이 2.3.0 이상이어야합니다. 여기를 참조하세요.
동일한 방법을 시도하지만 함수 맵에 더 많은 값이있는 다른 목록을 사용합니다. 내 문제는 반환 진술을 잊어 버리는 것이 었습니다. 이건 매우 중요합니다 :)
bottom: new TabBar(
controller: _controller,
isScrollable: true,
tabs:
moviesTitles.map((title) { return Tab(text: title)}).toList()
,
),
{}
한 줄 함수로 선언 되었기 때문입니다
toList
합니까?