相关疑难解决方法(0)

Flutter:从 Future 获取价值的正确方法

我有一个返回图像目录路径的函数,它执行一些额外的检查,比如目录是否存在,然后它会相应地运行。

这是我的代码:

Future<String> getImagesPath() async {
   final Directory appDir = await getApplicationDocumentsDirectory();
   final String appDirPath = appDir.path;

   final String imgPath = appDirPath + '/data/images';

   final imgDir = new Directory(imgPath);

   bool dirExists = await imgDir.exists();

   if (!dirExists) {
        await new Directory(imgPath).create(recursive: true);
   }

   return imgPath;

}
Run Code Online (Sandbox Code Playgroud)

这段代码按预期工作,但我在从Future.

案例场景: 我将数据存储在本地数据库中并尝试在列表视图中显示它。我正在使用FutureBuilder,如本答案中所述。每个数据行都有一个与之相连的图像(连接意味着,图像名称存储在db中)。

内部Widget build方法,我有这个代码:

@override
Widget build(BuildContext context) {
 getImagesPath().then((path){
     imagesPath = path;
     print(imagesPath); //prints correct path
   });
 print(imagesPath);   //prints null

return Scaffold(
    //removed
    body: FutureBuilder<List>( …
Run Code Online (Sandbox Code Playgroud)

asynchronous future async-await dart flutter

8
推荐指数
2
解决办法
2万
查看次数

标签 统计

async-await ×1

asynchronous ×1

dart ×1

flutter ×1

future ×1