gpt4 book ai didi

Flutter new Image.network foreach 在 ListView 中

转载 作者:IT王子 更新时间:2023-10-29 06:38:07 27 4
gpt4 key购买 nike

一般来说,我对 Flutter 和基于 Java 的语言完全陌生,我自己也有 PHP 背景。这将是一个非常初学者的问题:

我正在通过 ListView 创建一个新的 Network.image,如下所示:

new Image.network(snapshot.data[index].imageurl.toString() ?? ''),

好的,效果很好,因为 snapshot.data[index].imageurl 被认为是:

data ['content'][0]['imageurl']

并定义为:

String imageurl;

但是我想做的是获取整个数组:

 data ['content']['imageurl']

我想应该定义为:

List imageurl;

并遍历它为数组中的每个条目创建自己的 Image.network。

我试过很多东西,包括:

return new Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
snapshot.data[index].imageurl.forEach((data) {
new Image.network(snapshot.data[index].imageurl.toString() ?? ''),
}

但是 forEach 循环给我一个错误:

“这里的表达式有一个'void'类型,因此不能使用。

我怎样才能真正做到这一点?这里没有想法。

最佳答案

Iterable.forEach 用于在 Iterable 的每个项目上调用一个函数。它不产生任何输出(返回 void),并且从提供的函数返回的任何内容都将被丢弃。

要从现有的 ListIterable 生成新的 List,您需要使用 Iterable.map方法。

例如:

List<Widget> result = snapshot.data[index].imageurl.map((data) {
// Make sure to return the result.
return Image.network(snapshot.data[index].imageurl.toString())
}).toList(); // Call to convert the Iterable into a List.

还有一个潜在的问题:x.toString() ?? '' 是不必要的,因为 toString() 永远不应返回 null - 即使 Null.toString() 返回 "null"

关于Flutter new Image.network foreach 在 ListView 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54858389/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com