Как я могу исправить RangeError в списке объектов в флаттере?

Я пытаюсь составить список объектов в своем приложении. У меня есть некоторые данные, собранные из Firestore, и другие фиктивные данные, по крайней мере, на данный момент. Я создал метод и с помощью цикла For пытаюсь заполнить список сгенерированными объектами. Я постоянно получаю сообщение об ошибке «RangeError (index): Invalid value: Valid value range is empty: 1».

Что я пробовал? - Сначала я подумал, что это может быть проблема с данными Firestore, возможно, что-то не было готово во время задания, поэтому я создаю фальшивые переменные для заполнения объекта. Не работал. -Я думал, что это может быть как-то связано с циклом For, я закомментировал и ничего не решил. -Прочитал где-то, что проблема может быть в переменной [index], поэтому я поместил число в список [значение], и ошибка изменилась с «.. пусто: 1» на «.. пусто: X» X = число I положить туда.

class comida{
Comida(this.name, this.descripcion,this.likes)

String name, descripcion;
int likes;}

---------------------------------------------------------------

creacionMenu(Map<dynamic,dynamic>name, 
Map<dynamic,dynamic>descripcion, 
Map<dynamic,dynamic>likes){

List<Comida> menu;
for (var i = 1; i < likes.length; i++) {
menu[i]=Comida(name['$i'], descripcion['$i'], likes['$i']);
}
return menu;
}

Это очень упрощенная версия моего кода. Я знаю, что моя ошибка должна заключаться в том, как я пытался объявить список или как присвоить значение. Но не могу найти обходной путь. Любая помощь будет очень признательна.

0
0
213
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это потому, что вы записываете значение в menu, начиная с индекса 1, но List должно начинаться с 0.

Предпочитайте использование menu.add() или используйте Map<int, Comida> вместо menu.

Другие вопросы по теме