当集合为空时,我试图显示一个Text
小部件。但是,即使我的收藏集为空,我也无法满足显示Text('No Events :(');
的条件。我认为这是飞镖语法错误吗?
Container(
height: 400,
// width: 500,
child: StreamBuilder<QuerySnapshot>(
stream: Firestore.instance.collection('Events').where("bandId", isEqualTo:identifier ).snapshots(),
builder: (BuildContext context,
AsyncSnapshot<QuerySnapshot> snapshot) {
if (!snapshot.hasData)
return new Text('No Events :(');
switch (snapshot.connectionState) {
case ConnectionState.waiting:
return new Text('Loading...');
default:
return new ListView(
children: snapshot.data.documents
.map((DocumentSnapshot document) {
return Dismissible(
key: new Key(document.documentID),
onDismissed: (direction){
Firestore.instance.runTransaction((transaction) async {
DocumentSnapshot snapshot=
await transaction.get(document.reference);
await transaction.delete(snapshot.reference);
});
Fluttertoast.showToast(msg: "Event Deleted");
},
child: CustomCard(
event: document['event'],
location: document['location'],
service: document['service'],
date: document['date'],
),
);
}).toList(),
);
}
},
)),
答案 0 :(得分:0)
您正在创建语法错误。 你不能使用 new Text(“ Something”); 新的ListView( // ) 您必须指定一个支持Children的Widget。 您可以使用Column来显示多个小部件。
原因:您要指定If和Switch大小写。 我建议只在Switch情况下或在If-Else条件下介绍您的逻辑。
refs/stash