RangeError (index): Index out of range: index should be less than 1: 1 Dart

Я здесь уже спрашивал, как соединить два списка между собой, если их оба нужно отфильтровать по тайтлам, при этом у них нет общего айди. Сейчас я пытаюсь сделать так, чтобы при переходе на другую страницу отображались отфильтрованные элементы, принадлежащие каждому магазину.

В ответ получаю вот такую ошибку - RangeError (index): Index out of range: index should be less than 1: 1, при этом сам элемент отфильтрован и показывается на экране правильно. Как можно это избежать?

На скринах, что я имею ввиду:

стартовый экран со всеми кафеВторой экран, где есть уже нужный элемент, но с ошибкой

Код с 1 страницы:

List<Coffee> uniteCoffee(List<CoffeeShop> coffeeShop, List<CoffeeShopMenu> coffeeMenu){
      if(coffeeShop.length != coffeeShop.length) return [];

      List<Coffee> temp = <Coffee>[];

      for(int i = 0; i<coffeeShop.length; i++) {
        temp.add(Coffee(coffeeShop[i], coffeeMenu[i]));
      }

      return temp;
    }
    final List<Coffee> coffee = uniteCoffee(coffeeShop, coffeeMenu);

    return Scaffold(
      body: ListView.builder(itemCount: coffee.length,itemBuilder: (context, index){
        return ListTile(
          title: Text(coffee[index].shop.shopTitle),
          onTap: (){
            Navigator.push(
                context,
                MaterialPageRoute(
                    builder: (context) => Exp1(
                     shopMenuTitle: coffee[index].menu.shopMenuTitle,
                    )));

Код со 2ой

Exp1({Key key, this.shopMenuTitle, this.coffee}) : super(key: key);

  List<CoffeeShopMenu> get coffeeMenuTitle => coffeeMenu.where((element) => element.shopMenuTitle == shopMenuTitle).toList();
  @override
  Widget build(BuildContext context) {

  List<Coffee> uniteCoffee(List<CoffeeShop> coffeeShop, List<CoffeeShopMenu> coffeeMenu){
    if(coffeeShop.length != coffeeShop.length) return [];

    List<Coffee> temp = <Coffee>[];

    for(int i = 0; i<coffeeShop.length; i++) {
      temp.add(Coffee(coffeeShop[i], coffeeMenu[i]));
    }

    return temp;
  }
  final List<Coffee> coffee = uniteCoffee(coffeeShop, coffeeMenu);

    return Scaffold(
      body: ListView.builder(itemCount: coffee.length,itemBuilder: (context, index){
        return ListTile(
          title: Text(coffeeMenuTitle[index].shopMenuTitle),
        );
      }),
    );

Ответы (0 шт):