【发布时间】:2021-08-31 01:44:17
【问题描述】:
late Map<String,dynamic> userMap;
bool isLoading = false;
final TextEditingController _search = TextEditingController();
void onSearch() async{
FirebaseFirestore _firestore = FirebaseFirestore.instance;
setState(() {
isLoading = true;
});
await _firestore.collection('users').where('email', isEqualTo: _search.text)
.get().then((value) {
setState(() {
userMap = value.docs[0].data();
isLoading = false;
});
print(userMap);
});
}
代码的第一部分工作正常,但是当我想创建我的 ListTile 时,会弹出错误。
userMap != null ?
ListTile(
title: Text(userMap['name']),
subtitle: Text(userMap['email']),
):Container(),
如果 somoene 可以帮助我,那就太好了,谢谢!
【问题讨论】:
-
就这么晚了 Map
userMap ={};或从关键字中删除延迟并检查 usermap.isEmpty() -
如果你不能保证一个变量在被访问之前会被初始化,不要使用
late!创建变量late和 来检查它是否为null是没有意义的。如果您需要检查它是否为null,则使其可为空。或者使其不可为空,并在开始时将其初始化为非空值。 -
我尝试删除 Late 但我无法再次弹出错误
-
试试
Map<String,dynamic>? userMap;而不是late Map<String,dynamic> userMap; -
请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。