我定义了一个嵌套的Map
对象,如下所示:
late Map<String, dynamic> book = {
'storeId': '',
'title': '',
'images': [image]
};
Map<String, dynamic> image = {
'imageUrl': '',
};
然后尝试添加2个新图像,如下所示:
book['images'][0] = 'url-to-image';
book['images'][1] = 'url-to-image2'; // Error happens here
假设[image] list inside the
Map will act like a
List images ',但我遇到了这个错误:
范围错误(范围错误(索引):无效值:唯一有效值为0:(一)
为什么当我把'images': [image]
声明为List
时会发生这种情况?这是否意味着如果我想拥有一个List
的图像,我应该像下面这样做?
late Map<String, dynamic> book = {
'storeId': '',
'title': '',
'images': [image, image]
};
如果我不知道image
的数量,但希望用户能够添加他们想要的数量,该怎么办?
这是否意味着Map中的列表不像下面的List对象那样工作?
List<image> images;
images[0] = 'url';
images[1] = 'url2'; //No Error
无需任何初始化,例如:
List<image> images = [ image1, image2];
1条答案
按热度按时间jdzmm42g1#
Only valid value is 0: 1
意味着它在索引0上包含一个元素,你试图在那里得到索引1。这超出了范围。一个安全的情况下,我喜欢在访问索引之前检查长度。