dart 如何使Flutter中的图像网络生成有条件的列表

hfwmuf9z  于 2023-07-31  发布在  Flutter
关注(0)|答案(2)|浏览(101)

如何使List.generate与条件?我得到错误paused on exception
我无法显示firebase数组中的图像
这是我的代码

Obx(
  () => Row(
    mainAxisAlignment: MainAxisAlignment.spaceAround,
    children: List.generate(
      3,
      (index) => data['p_imgs'][index] != ''
        ? Image.network(
          data['p_imgs'][index],
          width: 100,
        ).onTap(() {
          controller.pickImage(index, context);
        })
        : productImages(label: "+").onTap(() {
          controller.pickImage(index, context);
        }),
    ),
  ),
),

字符串
我刚刚得到这个错误error msg

yqkkidmi

yqkkidmi1#

通常,如果你想使用List.generate,你需要提供List的长度,如果你使用条件,你将无法知道确切的长度。如果你想过滤,你需要事先知道长度。
你可以使用List.where代替这个,像这样

List<int> numbers = List.generate(100, (index) => index + 1).where((number) => number % 2 == 0).toList();

字符串
现在,首先,这将生成一个100个数字的列表,然后使用给定的条件过滤掉这些数字,这里的条件是数字是否能被2整除。
希望能帮上忙!!!

kadbb459

kadbb4592#

要生成一个图像列表,我想这就是你想要实现的,你可以做以下事情

data['p_imgs']
.map((path) {
    if (path != ''){
        return Image.network(path, width: 100,)..onTap(() { controller.pickImage(index, context); });
    }
    else {
        return productImages(label: "+")..onTap(() {
          controller.pickImage(index, context);
        });
    }
}

字符串
map函数遍历数组,你可以给予另一个类型。因此在这段代码中我们迭代字符串数组并为每个字符串给予一个networkimage
map function docu

相关问题