[英]Streambuilder error in SingleChildScrollView flutter
[英]Flutter - Streambuilder Error due to no return
我的 Streambuilder 出现错误。 我不明白如何解决它。 拜托,你能帮我解决这个问题吗? 非常感谢。
theftion trible tribrars捕获的例外╞═════════════════════════════════════════ ══════════════════ The following assertion was thrown building StreamBuilder(dirty, state: _StreamBuilderBaseState<QuerySnapshot, AsyncSnapshot>#47274): A build function returned null. 有问题的小部件是:StreamBuilder 构建函数绝不能返回 null。
StreamBuilder<QuerySnapshot>(
stream: FirebaseFirestore.instance
.collection('Users')
.doc(FirebaseAuth.instance.currentUser.uid)
.collection('projects')
.snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData)
const Text("Loading.....");
else {
List<DropdownMenuItem> projectItems = [];
for (int i = 0; i < snapshot.data.docs.length; i++) {
DocumentSnapshot snap = snapshot.data.docs[i];
projectItems.add(
DropdownMenuItem(
child: Text(
(snap.data()['project_Name']),
style: TextStyle(color: Colors.black),
),
// snap.id,
// style: TextStyle(color: Color(0xff11b719)),
// ),
value: (snap.data()['project_Name']),
),
);
return Row(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
DropdownButton(
items: projectItems,
onChanged: (projectSelected) {
final snackBar = SnackBar(
content: Text(
'Selected project is $projectSelected',
style: TextStyle(color: Color(0xff11b719)),
),
);
Scaffold.of(context).showSnackBar(snackBar);
setState(() {
selectedProject = projectSelected;
});
},
value: selectedProject,
isExpanded: false,
hint: new Text(
projectName,
style: TextStyle(color: Color(0xff11b719)),
),
),
],
);
}
}
}),
问题很明显,编译器告诉了你。 builder
总是需要返回一个Widget
。 但是当条件if (.snapshot.hasData)
被执行时,您的代码不会这样做。 您必须将其更改为:
if (!snapshot.hasData) {
return Text('Loading...');
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.