我希望有人能在这里帮我,我在这个问题上被困了好几个小时。
我试图建立一个StreamProivder基于我自己的模型,从一个Firestore快照。不知何故,每次我声明StreamProvider <List<Planner>>的类型时,value:-line都会带有红色下划线。
这是
return StreamProvider<List<Planner>>.value(
value: DatabaseService(uid: user.uid).planner,
child: Scaffold(...这是我的DataService类中的流:
Stream<List<Planner>> get planner {
return userCollection.document(uid).collection('Planner').snapshots().map(_plannerFromSnapshot);
}在这里我创建了我自己的数据列表:
List<Planner> _plannerFromSnapshot(QuerySnapshot snapshot) {
return snapshot.documents.map((doc) {
return Planner(
tag: doc.data['Datum'] ?? '',
tageszeit: doc.data['Tageszeit'] ?? '',
gericht: doc.data['Gericht'] ?? '',
plannerID: doc.documentID ?? '',
);
}).toList();
}
}这是我自己的规划师模型课:
class Planner {
final String tag;
final String tageszeit;
final String gericht;
final String plannerID;
Planner({this.tageszeit, this.gericht, this.tag, this.plannerID});
}下面是来自AndroidStudio的错误提示:
参数类型'Stream‘(其中规划师在...\lib\models\plannermodel.dart中定义)不能分配给参数类型'Stream’(在...\lib\screens\planner.dart中定义规划师)。
我怎么才能解决这个问题?
提前谢谢你!
发布于 2020-12-30 21:59:51
在错误消息中:
参数类型'Stream‘(其中规划师在...\lib\models\plannermodel.dart中定义)不能分配给参数类型'Stream’(在...\lib\screens\planner.dart中定义规划师)。
我们可以看到,Planner类有两个相互冲突的定义,一个在models\plannermodel.dart中,一个在screens\planner.dart中。
因此,我们可以将screens\planner.dart中的screens\planner.dart类更改为PlannerScreen来解决这个问题。
发布于 2020-12-30 21:12:17
您需要在.toList()之后的get计划器中使用.map()
https://stackoverflow.com/questions/65513539
复制相似问题