Flutter 迭代槽图<;列表<;数据模型>&燃气轮机;飞镖
我有两个数据模型。Flutter 迭代槽图<;列表<;数据模型>&燃气轮机;飞镖,flutter,dart,Flutter,Dart,我有两个数据模型。userDataModel和PostDataModel 用户可能有多个帖子 因此,我希望具有以下抓取结构: Map<userDataModel,List<PostDataModel>> = data Map=数据 我可以使用索引遍历数据吗?(用户索引,然后发布索引?) 类似于(用户,数据中的数据){} 或者类似于数据[0][0] 最后,我想要一个所有帖子的列表视图,一次一个用户 我还想知道如何打印数据,因为打印数据只返回实例。一个可能的解决方案是在嵌
userDataModel
和PostDataModel
用户可能有多个帖子
因此,我希望具有以下抓取结构:
Map<userDataModel,List<PostDataModel>> = data
Map=数据
我可以使用索引遍历数据吗?(用户索引,然后发布索引?)
类似于(用户,数据中的数据){}
或者类似于数据[0][0]
最后,我想要一个所有帖子的列表视图,一次一个用户
我还想知道如何打印数据,因为打印数据只返回实例。一个可能的解决方案是在嵌套的
forEach中迭代映射
和列表
:
data.forEach((user, posts) {
print(user);
posts.forEach((post) {
print(post);
});
print('---'); // end of the user's posts
});
我想你可以做类似的事情
var data=userDataModel.map((user)=>postDataModel.map((post){post.useriD==user.useriD?post:null}).toList()).toList()代码>首先,使用您提供的结构,Map
,必须有两个嵌套循环。为了能够遍历所有这些代码,您需要有如下代码:
void main(){
var data=Map();
data.forEach((用户、帖子){
对于(var post in post){
打印(职位名称);
打印(用户id);
}
});
}
类UserDataModel{
int-id;
}
类PostDataModel{
字符串名;
}
但是,正如您所提到的,因为您的帖子属于用户,所以我会将PostDataModel
放在UserDataModel
中。然后,您的数据最终会看起来有点不同:
void main(){
var data=List();
data.add(UserDataModel(1、[PostDataModel(“1”)、PostDataModel(“2”)));
data.add(UserDataModel(2、[PostDataModel(“三”)、PostDataModel(“四”)));
for(数据中的var用户){
for(user.posts中的var post){
打印(用户);
印刷(邮递);;
}
}
}
类UserDataModel{
int-id;
UserDataModel(this.id,this.posts);
列出员额;
@凌驾
字符串toString(){
var结果=”;
结果+=“Id:$Id\n”;
var计数=0;
对于(var post in post){
结果+=“Post$count,$Post”;
}
返回结果;
}
}
类PostDataModel{
字符串名;
PostDataModel(this.name);
@凌驾
字符串toString(){
返回“Name:$Name\n”;
}
}
这取决于您的后端结构,但我建议第二种方法
作为对问题第二部分的回答,请查看方法toString
。如果覆盖它,您可以自定义类的显示方式,例如,当您使用print(userDataModel
)时。例如,我创建了这些类,因此可以为您自己的类自定义它们
事实上,在最后一个示例中,您可以通过数据[0]访问您的帖子。帖子[0]
可以根据您的要求进行访问。这非常清楚。tksI很高兴这对您有所帮助!