Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 如何从未来获取字符串<;字符串>;飘飘然?_Flutter_Dart - Fatal编程技术网

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。首先计算未来方法的小部件,然后让您使用未来的给定值构建所需的小部件。这回答了你的问题吗?