Flutter 如何从未来获取字符串<;字符串>;飘飘然?
我有一个奇怪的问题。我需要Flutter 如何从未来获取字符串<;字符串>;飘飘然?,flutter,dart,Flutter,Dart,我有一个奇怪的问题。我需要Future的值作为String来显示带有CachedNetworkImage的图像。因为我必须等待来自Firebase存储的下载URL,所以我没有办法将其用作普通字符串 这是我需要值的小部件 Container(child: Obx( () { return CachedNetworkImage( imageUrl: _getImage(), // Here I need the value as String height
Future
的值作为String
来显示带有CachedNetworkImage
的图像。因为我必须等待来自Firebase存储的下载URL,所以我没有办法将其用作普通字符串
这是我需要值的小部件
Container(child: Obx(
() {
return CachedNetworkImage(
imageUrl: _getImage(), // Here I need the value as String
height: Get.height,
fit: BoxFit.cover);
},
))
Future<String> getDownloadUrl(ref) async {
final StorageReference storage = FirebaseStorage().ref().child(ref);
final url = await storage.getDownloadURL();
return url.toString();
}
这是我的\u getImage()
函数
Future<String> _getImage() async {
var url = return await MyStorage().getDownloadUrl(url);
return url;
}
因为我肯定要等待getDownloadUrl()
我没有机会将值返回为String
。但是我需要它作为字符串。否则我会出错
如何解决此问题?一个FutureBuilder
将根据未来的状态构建UI。你所要做的就是检查它是否有数据,然后构建图像
Future myFutureString()异步{
等待未来。延迟(持续时间(秒:1));
返回“你好”;
}
@凌驾
小部件构建(构建上下文){
回归未来建设者(
future:myFutureString(),
生成器:(上下文,快照){
if(snapshot.hasData){
返回容器(
子项:文本(snapshot.data),
);
}
返回循环ProgressIndicator();
},
);
}
尝试使用FutureBuilder。首先计算未来方法的小部件,然后让您使用未来的给定值构建所需的小部件。这回答了你的问题吗?