gpt4 book ai didi

flutter - 如何修复此错误 : The following assertion was thrown building FutureBuilder(dirty, 状态:_FutureBuilderState#89711):

转载 作者:行者123 更新时间:2023-12-03 02:52:23 24 4
gpt4 key购买 nike

这是错误:
有问题的小部件是:FutureBuilder
构建函数绝不能返回 null。
要返回导致建筑小部件填充可用空间的空白空间,请返回“Container()”。要返回占用尽可能少空间的空白空间,请返回“Container(width: 0.0, height: 0.0)”。

这是获取 Firebase 实时数据的函数:

Future<void> getCategoriesName() async {

await FirebaseDatabase.instance.reference().child('Categories').once()
.then((DataSnapshot dataSnapshot){
var key = dataSnapshot.value.keys;
for(var i in key)
{
CategoryItems categoryItems = new CategoryItems(
dataSnapshot.value[i]['CategoryName'],
dataSnapshot.value[i]['Counter']


);
categoryItemList.add(categoryItems);
}
setState(() {
print(categoryItemList.length);
});

});
}

这是我的 Future Builder 功能:
 Container(
margin: EdgeInsets.only(bottom: 50,top: 100),
child: FutureBuilder(
future: FirebaseDatabase.instance.reference().child('Categories').child(_userPin).once(),
// ignore: missing_return
builder: (context, snapshot) {
if(snapshot.hasData){
if (snapshot.data!=null) {
return Expanded();
}else{
return Loader();
}
}
}
),
),
在 Expanded 中,我有 ListView.builder,上面的错误只会在我的数据加载时抛出几秒钟,它会显示带有项目的屏幕。我在 FutureBuiler 的容器顶部有 Stack 小部件。

最佳答案

builder 为 false 时,您似乎没有从 snapshot.hasData 回调函数返回任何内容。这解释了为什么在从数据库加载数据之前您只会短暂地看到错误。您可以在等待数据从数据库到达时从 CircularProgressIndicator 回调函数返回 builder 小部件。你也可以去掉 // ignore: missing_return 注释,因为 builder 回调函数应该总是返回一个小部件。

void main() {
runApp(MyApp());
}

class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Container(
margin: EdgeInsets.only(bottom: 50, top: 100),
child: FutureBuilder(
future: FirebaseDatabase.instance.reference().child('Categories').child(_userPin).once(),
builder: (context, snapshot) {
if (snapshot.hasData) {
if (snapshot.data != null) {
return Expanded();
} else {
return Loader();
}
} else {
return CircularProgressIndicator();
}
},
),
),
),
);
}
}

关于flutter - 如何修复此错误 : The following assertion was thrown building FutureBuilder<DataSnapshot>(dirty, 状态:_FutureBuilderState<DataSnapshot>#89711):,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62720990/

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