我正在尝试在我的应用程序中列出对象。至少到目前为止,我已经从Firestore收集了一些数据,而其他数据则是模拟数据。我创建了一个方法,并使用For循环尝试用生成的Objects填充List。 我不断收到错误“ RangeError(索引):无效值:有效值范围为空:1”。
我尝试了什么? -首先,我认为这可能是Firestore Data的问题,可能在分配时还没有准备好,所以我创建了虚假变量来填充对象。没有工作。 -我以为它可能与For循环有关,我注释掉了但没有解决任何问题。 -在某处读取[index]变量可能是问题,因此我在List [value]中放置了一个数字,并且错误从“ ..is empty:1”更改为“ ..is empty:X” X = number 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;
}
那是我代码的非常简化的版本。我知道我的错误一定是我尝试声明List或分配值的方式。但是找不到解决方法。 任何帮助都非常准确。
答案 0 :(得分:1)
这是因为您在menu
中写了一个从索引1开始的值,但是List
必须从0开始。
优选使用menu.add()
或将Map<int, Comida>
用作menu
。