我嘗試映射映射的回傳,但看起來第一個映射不回傳迭代的結果。我在這里有點困惑。
我試試那個代碼。它只是簡單地迭代“行”并回傳迭代的資料:
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);
}
我得到的結果不是我所期望的。如您所見,看起來 2 次迭代完全相同。
!!!!!!!!!!!!!!!!!!!
[{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}
有沒有辦法讓它以那種方式作業?什么是最好的選擇?
感謝您的回答。
uj5u.com熱心網友回復:
是的,有一種方法可以讓它像這樣作業:
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);
}
本質上,您希望列印傳遞給第二個函式的串列中的每個專案。您將獲得與第二次迭代相同的結果,因為您將第一次迭代的輸出轉換為函式正在接收的相同輸入。
uj5u.com熱心網友回復:
哦,我覺得已經是深夜了,問這個問題的時候我很累..我找到了我誤導性問題的解決方案..
Row(children: [
...treeData['row']
.map((data) => Column(children: [
...data.map((item) => Image.network(
item['img'],
fit: BoxFit.cover,
alignment: Alignment.topCenter,
))
]))
.toList()
那是如此簡單和容易..似乎有時我們需要睡覺,伙計們(我)..><
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/404588.html
標籤:
上一篇:如何修改用戶輸入請求中的鍵值
下一篇:帶有繪圖蟒蛇的西班牙地圖
