gpt4 book ai didi

firebase - flutter future :A build function returned null

转载 作者:IT王子 更新时间:2023-10-29 06:53:40 25 4
gpt4 key购买 nike

我想从 firebase 检索数据到 future builder 。我为此使用了这个函数。

Future getAllData() async {
ReseviorDataModel resModel;
DatabaseReference ref = FirebaseDatabase.instance.reference();
DataSnapshot childed =await
ref.child("Reservoir/${widget.placeName}").once();
Map<dynamic, dynamic> values;
values = childed.value;
resModel = ReseviorDataModel.customConstrcutor(values["sensor1"],
values["sensor2"], values["sensor3"]);
return resModel;
}

我在未来的构建器中调用了这个函数。

  child: FutureBuilder(
future: getAllData(),
builder: (context, snapshot) {
Center(child: Text(snapshot.data));
}

但它一直抛出“构建函数返回空值”。错误。我无法弄清楚这里的问题是什么

最佳答案

要清除此处的内容,您的构建器始终必须返回要显示的小部件。如错误消息所述,您永远不能返回 null。

这种情况下的问题是 OP 没有从构建器返回任何东西,所以只需添加一个返回就可以了。

使用 FutureBuilder 时要记住的一些事情。始终检查 snapshot.hasData 属性并相应地返回一个 UI。这将防止 snapshot.data 为 null 的情况导致在您的 Widget 中抛出一个新的错误。

例子:

child: FutureBuilder(
future: getAllData(),
builder: (context, snapshot) {
if(!snapshot.hasData) {
// show loading while waiting for real data
return CircularProgressIndicator();
}

return Center(child: Text(snapshot.data));
}

关于firebase - flutter future :A build function returned null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55074996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com