【问题标题】:The return type 'Object?' isn't a 'Widget', as required by the closure's context. Flutter返回类型“对象?”不是闭包上下文所要求的“小部件”。扑
【发布时间】:2021-11-17 04:26:32
【问题描述】:

过去你可以像这样使用 FutureBuilder:

FutureBuilder(
       future: test(),
       builder: (BuildContext context, snapshot) {
        return snapshot.data;
      },
    ),
  test() async {
      await Firebase.initializeApp();
      String downloadURL = await firebase_storage.FirebaseStorage.instance
          .ref('achtergrond.jpg')
          .getDownloadURL();
      print(downloadURL);
    }

自最新更新以来,它已更改,现在无法使用。我收到的错误消息是:

返回类型“对象?”不是“小部件”,如 闭包的上下文。

所以我的问题是他们为什么要更改它以及如何修复它并像往常一样从 Dart 中的函数获取数据

【问题讨论】:

  • snapshot.data 与小部件绑定
  • 那你打算怎么做?
  • 使用文本小部件或其他您需要显示数据的工具
  • test() async { await Firebase.initializeApp(); String downloadURL = await firebase_storage.FirebaseStorage.instance .ref('achtergrond.jpg') .getDownloadURL(); print(downloadURL); return Text('Hi'); } 这样的东西不太好用...你能给我看一些代码吗?
  • 感谢您的帮助我找到了它!

标签: flutter dart


【解决方案1】:

如果您遇到此问题,请按照以下方法解决:

FutureBuilder(
          future: test(),
          builder: (BuildContext context, snapshot) {
            var data = snapshot.data as Widget; // Get the data as a Widget and works just fine
            return data;
          },
        ),
test() async {
  await Firebase.initializeApp();
  String downloadURL = await firebase_storage.FirebaseStorage.instance
      .ref('achtergrond.jpg')
      .getDownloadURL();
  print(downloadURL);

  return Text(downloadURL);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-27
    • 2021-11-13
    • 1970-01-01
    • 1970-01-01
    • 2023-02-13
    • 2021-08-07
    • 1970-01-01
    • 2022-01-12
    相关资源
    最近更新 更多