Flutter如何显示列表中的单个值



我正在尝试从数组中筛选数据,然后只需要从数据中筛选一个值。它显示过滤后的数据,但需要知道如何显示该数据中的单个值?

class _ViewPostScreenState extends State<ViewPostScreen> {
List showPost;
String data;

@override
void initState(){
super.initState();
print(widget.id);
showPost = posts.where((i) => i.id == widget.id).toList();
data = showPost.toString();
print(data);
}

数据的响应或打印输出是此I/flutter ( 7374): [{id: 0, authorName: Umaiz Khan, authorImageUrl: assets/images/user0.png, timeAgo: 5 min, imageUrl: assets/images/post0.jpg}]

我需要知道如何从这些数据中显示authorName?

类似于此打印(data.authorName(;试着这样做,但不要奏效。

这里我的数据看起来像其他文件

class Post {
String authorName;
String authorImageUrl;
String timeAgo;
String imageUrl;
int id;
Post({
this.authorName,
this.authorImageUrl,
this.timeAgo,
this.imageUrl,
this.id,
});
@override
String toString() {
return '{id: $id, authorName: $authorName, authorImageUrl: $authorImageUrl, timeAgo: $timeAgo, imageUrl: $imageUrl}';
}
}
final List<Post> posts = [
Post(
id: 0,
authorName: 'Umaiz Khan',
authorImageUrl: 'assets/images/user0.png',
timeAgo: '5 min',
imageUrl: 'assets/images/post0.jpg',
),
Post(
id: 1,
authorName: 'Saad ahmed',
authorImageUrl: 'assets/images/user1.png',
timeAgo: '10 min',
imageUrl: 'assets/images/post1.jpg',
),
Post(
id: 2,
authorName: 'Hiba',
authorImageUrl: 'assets/images/user4.png',
timeAgo: '10 min',
imageUrl: 'assets/images/post2.jpg',
),
];

字符串数据更改为发布数据

data=showPost[0]

当你想根据列表中对象的值获取任何列表时,你可以总是使用这个for循环,在你的情况下,widget.id应该相当于后的id

@override
void initState() {
super.initState();
print(widget.id);
Post getPost(int postID) {
for (int i = 0; i < posts.length; i++) {
if (posts.elementAt(i).id == postID) {
return posts.elementAt(i);
}
}
return null;
}
print(getPost(widget.id).authorName);
}

我希望这能帮助

最新更新