错误:返回类型"可迭代<Book>"不是<Book>闭包上下文要求的"列表"。 在颤振



"listOfDocSnap.map((docSnap(=>Book.fromMap(docSnap.data(((("我在网上收到错误:

错误:参数类型"Object?"不能分配给参数类型'Map<动态,动态>'。

错误:返回类型"Iterable"不是闭包上下文所要求的"List"。

图书类别:

class Book {
final String bookName;
final String id;
final String authorName;
final Timestamp publishedDate;
Book(
{required this.bookName,
required this.id,
required this.authorName,
required this.publishedDate});
Map<String, dynamic> toMap() => {
'id': id,
'bookName': bookName,
'authoName': authorName,
'publishedDate': publishedDate,
};
factory Book.fromMap(Map map) => Book(
bookName: map['bookName'],
id: map['id'],
authorName: map['authorName'],
publishedDate: map['publishedDate']);
}

视图模型类:

class BooksViewModel extends ChangeNotifier {
Database _database = Database();
Stream<List<Book>> getBookList() {
const String booksRef = 'books';
Stream<List<DocumentSnapshot>> streamListDocument =
_database.getBooks(booksRef).map((querySnapshot) => querySnapshot.docs);
Stream<List<Book>> streamListOfBook = streamListDocument.map(
(listOfDocSnap) =>
***listOfDocSnap.map((docSnap) => Book.fromMap(docSnap.data())));***
return streamListOfBook;
}
}

map返回Iterable,因此需要调用.toList((

listOfDocSnap.map<Book>((docSnap) => Book.fromMap(docSnap.data()))).toList();

相关内容

最新更新