![](/img/trans.png)
[英]NoSuchMethodError: The getter 'docs' was called on null. Flutter
[英]Flutter QuerySnapshot: The getter 'docs' was called on null
我收到错误“NoSuchMethodeError:在 null 上调用了 getter 'docs'。” 使用以下代码:
QuerySnapshot querySnapshot;
initiateSearch() {
databaseMethods
.getUserByUsername(searchTextEditingController.text)
.then((val) {
querySnapshot = val;
});
}
Widget searchList() {
return ListView.builder(
itemCount: querySnapshot.docs.length,
itemBuilder: (context, index) {
return SearchTile(
userName: querySnapshot.docs[index].data()["name"],
userEmail: querySnapshot.docs[index].data()["email"],
);
}
);
}
如果有人回答为什么querySnapshot.docs[index].data()["name"]
不起作用,我收到此错误以及如何解决它,请帮忙!
要重建与 state 更改同步的 UI,我们应该使用 state 管理,最简单的是StatefulWidget
的setState()
function :
QuerySnapshot _querySnapshot;
initiateSearch() {
databaseMethods
.getUserByUsername(searchTextEditingController.text)
.then((val) {
setState(() {
_querySnapshot = val;
});
});
}
并处理_querySnapshot
仍为null的情况:
Widget searchList() {
if (_querySnapshot == null) return CircularProgressIndicator();
return ListView.builder(
itemCount: _querySnapshot.data.docs.length,
itemBuilder: (context, index) {
return SearchTile(
userName: _querySnapshot.data.docs[index]["name"],
userEmail: _querySnapshot.data.docs[index]["email"],
);
}
);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.