gpt4 book ai didi

flutter - 如何从Flutter中的Future 中获取字符串?

转载 作者:行者123 更新时间:2023-12-03 04:34:12 26 4
gpt4 key购买 nike

我有一个奇怪的问题。我需要Future<String>的值作为String来显示带有CachedNetworkImage的图像。因为我必须等待Firebase Storage的downloadUrl,所以我找不到将其用作普通String的方法。
这是我的小部件,我需要值

Container(child: Obx(
() {
return CachedNetworkImage(
imageUrl: _getImage(), // Here I need the value as String
height: Get.height,
fit: BoxFit.cover);
},
))
这是我的_getImage()函数
Future<String> _getImage() async {
var url = return await MyStorage().getDownloadUrl(url);
return url;
}
getDownloadUrl()仅返回带有Firebase存储的下载URL的字符串
Future<String> getDownloadUrl(ref) async {
final StorageReference storage = FirebaseStorage().ref().child(ref);
final url = await storage.getDownloadURL();

return url.toString();
}
因为我一定要等待 getDownloadUrl(),所以我没有机会将值返回为 String。但我需要它作为 String。否则我会报错。
您将如何解决这个问题?

最佳答案

FutureBuilder将根据Future的状态来构建UI。您所要做的就是检查它是否具有数据,然后构建镜像。

  Future<String> myFutureString() async {
await Future.delayed(Duration(seconds: 1));
return 'Hello';
}

@override
Widget build(BuildContext context) {
return FutureBuilder<String>(
future: myFutureString(),
builder: (context, snapshot) {
if (snapshot.hasData) {
return Container(
child: Text(snapshot.data),
);
}
return CircularProgressIndicator();
},
);
}

关于flutter - 如何从Flutter中的Future <String>中获取字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64387942/

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