我需要从.map()中检索index的值
class ImageSliderScreen extends StatefulWidget {
final List<RecipeStepsModel>? recipeStepsList;
ImageSliderScreen({required this.recipeStepsList});
@override
_ImageSliderScreenState createState() => _ImageSliderScreenState();
}
我有一个RecipeStepsModel
的列表,我需要从中构建一个图像轮播:
Container(
child: CarouselSlider(
options: CarouselOptions(height: 400.0),
items: widget.recipeStepsList!.map(
(i) {
return Builder(
builder: (BuildContext context) {
return Container(
width: MediaQuery.of(context).size.width,
margin: EdgeInsets.symmetric(horizontal: 5.0),
child: ImageCarouselCard(
recipeSteps: widget.recipeStepsList![i], //error
),
);
},
);
},
).toList(),
),
),
我得到这个错误:The argument type 'RecipeStepsModel' can't be assigned to the parameter type 'int'
这里我遗漏了什么?我怎样才能得到我的recipeStepsList
的索引?
2条答案
按热度按时间tquggr8v1#
使用
list.asMap().entries.map((e) {})
。e.key
将给出索引e.vaule
将给出该索引处的值sy5wg1nm2#
再看一下
map
方法的documentation,你对方法的理解是错误的,你误以为是索引的i
并不是索引,而是列表中的项本身,所以你需要改成这样。