其他语言像是js,提供的迭代器是可以直接获取element,index的,但是用dart的map()发现无法获取下标,实际上dart的迭代器只支持获取element自身,想要获得index,就需要借助asMap(),Dart提供的asMap()将列表转换为Map。
List list = ['hello', 'world', 'china'];
final listToMap = list.asMap(); // {0: 'hello', 1: 'world', 2: 'china'}
List<Widget> _list = _products.asMap().map((i, item){
return MapEntry(i, _renderCount(item, i)); // 可以在这里获取索引以及渲染组件
}).values.toList();
Dart提供了List.generate方法获取index
List list = ['hello', 'world', 'china'];
List result = List.generate(list.length, (index) {
return _renderItem(index);
});
网友评论