Я пытаюсь составить список объектов в своем приложении. У меня есть некоторые данные, собранные из 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;
}
Это очень упрощенная версия моего кода. Я знаю, что моя ошибка должна заключаться в том, как я пытался объявить список или как присвоить значение. Но не могу найти обходной путь. Любая помощь будет очень признательна.
Это потому, что вы записываете значение в menu
, начиная с индекса 1, но List
должно начинаться с 0.
Предпочитайте использование menu.add()
или используйте Map<int, Comida>
вместо menu
.