【发布时间】:2022-01-05 18:07:28
【问题描述】:
今天我收到了这个错误: Expected a value of type 'Map<String, dynamic>', but got one of type '() => Map<String, dynamic>?' The relevant error-causing widget was: StreamBuilder<DocumentSnapshot<Object?>> StreamBuilder:file:[Filepath]
这是这个小部件:
return StreamBuilder<DocumentSnapshot>(
stream: database.getTodos(),
builder: (BuildContext context, AsyncSnapshot<DocumentSnapshot> snapshot) {
if (!snapshot.hasData) {
return Center(child: CircularProgressIndicator());
}
else {
// resolve stream... Stream<DocumentSnapshot> -> DocumentSnapshot -> Map<String, bool>
Map<String, dynamic> items = snapshot.data?.data as Map<String, dynamic>;
return ListView.builder(
itemCount: items.length,
itemBuilder: (context, i) {
String key = items.keys.elementAt(i);
return ToDoItem(
key,
items[key],
() => deleteItem(key),
() => toggleDone(key, items[key]),
);
});
}
},
);
该错误是由 Firestore 数据库引起的,但我不知道如何修复它。
如果你需要更多的东西来解决它,请评论,我会给你它的代码。
我试图通过添加一些?around 或更改类型Map 来解决它哦,我也更改了
Stream getTodos() {
return userTodos.document(userID).snapshots();
}
在数据库类中
Stream<DocumentSnapshot> getTodos() {
return userTodos.doc(userID).snapshots();
}
但它并没有修复这个错误,而是另一个错误。 感谢您的帮助
【问题讨论】: