我试图映射一个映射的返回,但它看起来像第一个映射,不返回迭代的结果。我在这里有点困惑。
我试试那个密码。它只需迭代“行”并返回迭代的数据:
void main() {
final Map<String, dynamic> treeData = {
"title": "test",
"row": [
[
{
"img":
"https://cdn.pixabay.com/photo/2014/11/30/14/11/cat-551554_960_720.jpg"
},
{
"img":
"https://cdn.pixabay.com/photo/2015/03/27/13/16/maine-coon-694730_960_720.jpg"
}
],
[
{
"img":
"https://cdn.pixabay.com/photo/2014/11/30/14/11/cat-551554_960_720.jpg"
}
]
],
};
var mappedData = treeData['row'].map((data) {
print("");
print("!!!!!!!!!!!!!!!!!!!");
print(data);
return data;
}).toList().map((data) {
print("");
print("-------------------");
print(data);
return data;
}).toList();
print("");
print("???????????");
print(mappedData);
}我得到的结果与我所期望的不一样。正如您所看到的,这两个迭代看起来是完全相同的。
!!!!!!!!!!!!!!!!!!!
[{img: https://cdn.pixabay.com/photo/2014/11/30/14/11/cat-551554_960_720.jpg}, {img: https://cdn.pixabay.com/photo/2015/03/27/13/16/maine-coon-694730_960_720.jpg}]
!!!!!!!!!!!!!!!!!!!
[{img: https://cdn.pixabay.com/photo/2014/11/30/14/11/cat-551554_960_720.jpg}]
-------------------
[{img: https://cdn.pixabay.com/photo/2014/11/30/14/11/cat-551554_960_720.jpg}, {img: https://cdn.pixabay.com/photo/2015/03/27/13/16/maine-coon-694730_960_720.jpg}]
-------------------
[{img: https://cdn.pixabay.com/photo/2014/11/30/14/11/cat-551554_960_720.jpg}]
???????????
[[{img: https://cdn.pixabay.com/photo/2014/11/30/14/11/cat-551554_960_720.jpg}, {img: https://cdn.pixabay.com/photo/2015/03/27/13/16/maine-coon-694730_960_720.jpg}], [{img: https://cdn.pixabay.com/photo/2014/11/30/14/11/cat-551554_960_720.jpg}]]我希望有这样的东西,第二次迭代遍历第二个数组并返回对象值。
!!!!!!!!!!!!!!!!!!!
[{img: https://cdn.pixabay.com/photo/2014/11/30/14/11/cat-551554_960_720.jpg}, {img: https://cdn.pixabay.com/photo/2015/03/27/13/16/maine-coon-694730_960_720.jpg}]
!!!!!!!!!!!!!!!!!!!
[{img: https://cdn.pixabay.com/photo/2014/11/30/14/11/cat-551554_960_720.jpg}]
-------------------
{img: https://cdn.pixabay.com/photo/2014/11/30/14/11/cat-551554_960_720.jpg}
{img: https://cdn.pixabay.com/photo/2015/03/27/13/16/maine-coon-694730_960_720.jpg}
-------------------
{img: https://cdn.pixabay.com/photo/2014/11/30/14/11/cat-551554_960_720.jpg}有办法让它这样运作吗?最好的选择是什么?
谢谢你的回答。
发布于 2022-01-04 22:09:52
哦,我觉得很晚了,当我问这个问题的时候我很累。我发现了我对我的问题的解决办法。
Row(children: [
...treeData['row']
.map((data) => Column(children: [
...data.map((item) => Image.network(
item['img'],
fit: BoxFit.cover,
alignment: Alignment.topCenter,
))
]))
.toList()很简单很容易..。似乎有时候我们需要睡觉,伙计们(我)。><
发布于 2022-01-03 11:43:44
是的,有一种方法可以让它这样运作:
void main() {
final Map<String, dynamic> treeData = {
"title": "test",
"row": [
[
{
"img":
"https://cdn.pixabay.com/photo/2014/11/30/14/11/cat-551554_960_720.jpg"
},
{
"img":
"https://cdn.pixabay.com/photo/2015/03/27/13/16/maine-coon-694730_960_720.jpg"
}
],
[
{
"img":
"https://cdn.pixabay.com/photo/2014/11/30/14/11/cat-551554_960_720.jpg"
}
]
],
};
var mappedData = treeData['row']
.map((data) {
print("");
print("!!!!!!!!!!!!!!!!!!!");
print(data);
return data;
})
.toList()
.map((data) {
for (var item in data) {
print("");
print(item);
}
print("-------------------");
return data;
})
.toList();
print("");
print("???????????");
print(mappedData);
}本质上,您希望打印要传递给第二个函数的列表中的每一项。您将获得第二次迭代的相同结果,因为您正在将第一次迭代的输出转换为函数正在接收的相同输入。
https://stackoverflow.com/questions/70564814
复制相似问题