Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 迭代槽图<;列表<;数据模型>&燃气轮机;飞镖_Flutter_Dart - Fatal编程技术网

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很高兴这对您有所帮助!