json 范围错误(范围错误(索引):无效值:唯一有效值为0:(一)

r1zhe5dt  于 2023-03-09  发布在  其他
关注(0)|答案(1)|浏览(206)

我定义了一个嵌套的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];
jdzmm42g

jdzmm42g1#

Only valid value is 0: 1意味着它在索引0上包含一个元素,你试图在那里得到索引1。这超出了范围。一个安全的情况下,我喜欢在访问索引之前检查长度。

book['images'].length>1? book['images'][1]: yourDefaultValue

相关问题