gpt4 book ai didi

dart - 有没有办法将 Future> 转换为 List

转载 作者:IT王子 更新时间:2023-10-29 07:04:45 25 4
gpt4 key购买 nike

编辑:

主页 - 我正在从我的 firebase 集合中获取一个字符串列表。然后我想调用 firestore 存储并获取可下载的图像链接并将其存储在我将传递给第 2 页的列表中。下面的代码是我获取可下载链接的方式。

Future<List<String>> test(List images) async{
List<String> listOfImages = List<String>();
for(int i = 0; i < images.length; i++){
final ref = FirebaseStorage.instance.ref().child(images[i]);
var url = await ref.getDownloadURL();
listOfImages.add(url);
}
return listOfImages;
}

然后我按以下方式传递图像列表

Navigator.push(
context,
MaterialPageRoute(
builder: (context) => CarDetailScreen(
carImages: test( car['images'])
)),
);

第 2 页 - 我收到一个 Future>,我想将其转换为列表

List<T> map<T>(List list, Function handler) {
List<T> result = [];
for (var i = 0; i < list.length; i++) {
result.add(handler(i, list[i]));
}

return result;
}

new CarouselSlider(
items: ***["This is where I need a List"]***.map((url) {
return new Container(
margin: new EdgeInsets.all(5.0),
child:
new GestureDetector(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ViewCarImages(
carImages: _getImages(snapshot))),
);
},
child:
new ClipRRect(
borderRadius: new BorderRadius.all(new Radius.circular(5.0)),
child:
new Image.network(
url,
fit: BoxFit.cover,
width: 1000.0,
)
)
)
);
}).toList(),
viewportFraction: 0.9,
aspectRatio: 2.0,
autoPlay: false,
)

最佳答案

你可以只返回一个 Widget 列表,像这样:

    Future<List<Widget>> test(List images) async{   
List<Widget> listOfImages = List<Widget>();
for(int i = 0; i < images.length; i++){
final ref = FirebaseStorage.instance.ref().child(images[i]);
var url = await ref.getDownloadURL();
listOfImages.add(Image.network(url));
}
return listOfImages;
}

关于dart - 有没有办法将 Future<List<String>> 转换为 List<dynamic>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54297523/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com