颤振如何按1值过滤数据?

时间:2020-04-09 15:30:39

标签: flutter dart

我需要过滤我的应用程序中的数据,但显示错误是我的工作方式。

现在打印[Instance of 'Post'],我需要打印所有值

class _FilterScreenState extends State<FilterScreen> {

List showPost;

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

  }

我需要过滤id等于我的widget.id的数组

在其他文件上,数据看起来像这样

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',
  ),
];

2 个答案:

答案 0 :(得分:1)

重写Post类的函数 toString 。返回您需要显示的值。

  @override
  String toString() {
    return '$id - $authorName';
  }

答案 1 :(得分:1)

您可以覆盖Post类的toString()方法,如下所示

class Post{
  int id;
  String authorName;
  String authorImageUrl;
  String timeAgo;
  String imageUrl;
  Post({this.id,this.authorName,this.authorImageUrl,this.timeAgo,this.imageUrl});


    @override
  String toString( ) {
    return 'Post{id: $id, authorName: $authorName, authorImageUrl: $authorImageUrl, timeAgo: $timeAgo, imageUrl: $imageUrl}';
  }

}