【问题标题】:Using a FutureBuilder with one future depends on the results on the other future使用具有一个未来的 FutureBuilder 取决于另一个未来的结果
【发布时间】:2021-06-21 12:09:53
【问题描述】:

我构建我的 firebase firestore 和存储的方式是,一旦我在 firestore 中获得一个项目的 uid,我就会将该 id 带到我的存储中并检索 downloadUrls 列表以显示图像。所以检索downloadUrls将取决于uid,其中两个是具有依赖关系的异步调用。

所有这些都是为了显示一个非常标准的卡片小部件,底部带有图片和描述。

在我的FutureBuilder future 参数中,我尝试使用Future.wait api,但是我不知道如何将从一个未来检索到的信息传递到下一个未来。

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    Future.wait 并非用于此目的。它适用于独立期货。如果你有两个 future 并且一个需要另一个的返回值来启动,将它们包装到一个 future 中:

    //First future for uid
    Future<String> uid() async {
      return id;
    }
    
    //Second future for URL
    Future<String> downloadURL(String uid) async {
      //Use the uid and get the download URL future
    }
    
    //Wrapper to combine them
    Future<String> combined() async {
      final uid = await uid();
      return downloadUrl(uid);
    }
    

    然后您可以将combined 未来传递给您的FutureBuilder

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多