首页 > 解决方案 > 问:无法根据类别返回事件列表?

问题描述

无法根据类别返回事件列表,eventsData 无法获取包含 categoryId 的类别类型。当没有为“事件”类型定义吸气剂“类别”时会发生错误,知道这意味着什么吗?

代码:

//ListView
final routeArgs =
        ModalRoute.of(context).settings.arguments as Map<String, String>;
    final categoryId = routeArgs['id'];

    List<Events> displayedEvent;
    final eventsData = Provider.of<Events>(context);

    displayedEvent = Events.where((event) {
      return eventsData.categories.contains(categoryId);
    }).toList();

    return ListView.builder(
      itemBuilder: (ctx, index) {
        return EventItem(
          id: displayedEvent[index].id,
          title: displayedEvent[index].title,
        );
      },
      itemCount: displayedEvent.length,
    );

数据文件:

class Events with ChangeNotifier {
  List<Event> _items = [
    Event(
      id: '101',
      categories: [
        'c1',
        'c3',
      ],
      title: 'Food Festival',
    ),
    Event(
      id: '102',
      categories: [
        'c1',
        'c4',
      ],
      title: 'Fireworks Festival',
    ),
  ];

  List<Event> get items {
    return [..._items];
  }

  Event findById(String id) {
    return _items.firstWhere((event) => event.id == id);
  }
}

标签: androidiosflutter

解决方案


推荐阅读