大佬教程收集整理的这篇文章主要介绍了没有为“AsyncSnapshot<Object?>”类型定义 getter 'docs',大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
迁移到空安全后出现错误 未为类型“AsyncSnapshot
错误所在的代码片段
return FutureBuilder(
future: searchResultsFuture,builder: (context,snapshot) {
if (!snapshot.hasData) {
return circularProgress();
}
List<UserResult> searchResults = [];
snapshot.docs.forEach((doC) { //have error here
User user = User.fromdocument(doc);
UserResult searchResult = UserResult(user);
searchResults.add(searchResult);
});
return ListVIEw(
children: searchResults,);
},);
}
搜索结果未来
handleSearch(String query) {
Future<querySnapshot> users =
usersRef.where("displayname",isGreaterThanorequalTo: query).get();
setState(() {
searchResultsFuture = users;
});
}
clearSearch() {
searchController.clear();
}
您代码中的 snapshot
是一个 AsyncSnapshot
,它确实没有 docs
子代。要从 Firestore 获取文档,您需要使用:
snapshot.data.docs
另请参阅 listening for realtime data 上的 FlutterFire 文档,其中包含显示此示例的示例 - 我的回答在这里解释了所有快照类型:what is the difference between exisTing types of snapshots in Firebase?
,通常,检索数据需要几毫秒的时间,所以我尝试这样做 确保在检索数据后执行我的操作
return StreamBuilder<QuerySnapshot>(
stream: Collectionreference
.snapshots(),builder: (BuildContext context,AsyncSnapshot<QuerySnapshot> activitySnapshot) {
if (activitySnapshot.hasError) {
return Center(
child: Text('Something went wrong'),);
}
if (activitySnapshot.connectionState == ConnectionState.waiTing) {
return Center(
child: SpinKitWave(
color: constants.AppMainColor,itemCount: 5,size: 40.0,)));
}
if (!activitySnapshot.hasData || activitySnapshot.data.docs.isEmpty) {
return Center(
child: Text('Nothing to Display here'),);
}
if (activitySnapshot.hasData) {
activitySnapshot.data.docs.forEach(doc=>{
print(doc);
})
}
}
});
以上是大佬教程为你收集整理的没有为“AsyncSnapshot<Object?>”类型定义 getter 'docs'全部内容,希望文章能够帮你解决没有为“AsyncSnapshot<Object?>”类型定义 getter 'docs'所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。