我有streamBuilder,当我短暂浏览页面时,该函数返回零错误,即数据没有时间加载且该函数返回null
if (customers != null) {
return StreamBuilder(
stream: customers,
//initialData: ,
builder: (context, AsyncSnapshot snapshot) {
if (snapshot.hasData) {
if (snapshot.data != null) {
return ListView.builder(
itemCount: snapshot.data.documents.length,
padding: EdgeInsets.all(5.0),
itemBuilder: (context, i) {
return new ListTile(
title:
Column(mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Text(snapshot.data.documents[i].data['pickedDay'],),
Text(snapshot.data.documents[i].data['pickedTime']),
Text(snapshot.data.documents[i].data['service']),
Text(snapshot.data.documents[i].data['phoneNumber']),
Divider(height: 10, color: primaryColor2),
],),
},
);
},
);
}
}
// }
},
);
} else {
return new CircularProgressIndicator();
}
}>
我该如何解决?
答案 0 :(得分:3)
snapshot.hasData
为false时,您的构建器未返回数据。这就是为什么您看到该错误的原因。
您应该退货。它可以只是一个空容器或装料器。 像这样:
if (snapshot.hasData || snapshot.data != null) {
//your current code
}else{
return Container()
}