javascript - 如何遍历 array.map 函数中的数组?
问题描述
我正在尝试在我的反应应用程序的另一个循环中迭代一个数组。我有一个 json 文件,其中包含如下所示的数据:
[
{
"id":"0001",
"photos":[
"IMG_9239.JPG",
"2019-01-07.jpg",
"IMG_9261.JPG"
]
},
{
"id":"0002",
"photos":[
"IMG_9239.JPG",
"2019-01-07.jpg",
"IMG_9261.JPG"
]
},
{
"id":"0003",
"photos":[
"IMG_9239.JPG",
"2019-01-07.jpg",
"IMG_9261.JPG"
]
}
]
这是我的反应组件:
const ListItems = ({data}) => {
return (
<div id="items-container">
{data.map( item => (
<p>{item.id}</p>
//iterate the [photos] array in an img tag
//<img src ="photo" />
))}
</div>
)
}
我正在尝试{item.photos.map....}
,但它似乎不是有效的语法。你能帮忙吗?
解决方案
多个 JSX 元素需要一个父级,或者至少一个伪父级。在这里,您可以使用片段作为从回调<>
返回的内容的父级,同时包含 the和s:.map
<p>
<img>
const ListItems = ({data}) => {
return (
<div id="items-container">
{data.map( item => (
<>
<p>{item.id}</p>
{item.photos.map(({ src }) => <img src={src}></img>}
</>
))}
</div>
)
}
推荐阅读
- python - 如何规避使用 pandas 过滤 txt 文档,其中行包含字符串、整数和浮点数
- google-data-studio - 如何在 Data Studio 上为时间 (hhmm) 间隔创建过滤器
- ckeditor - CKEditor4 提到输出模板未在所见即所得编辑器中输出整个模板化字符串并作为新插入
标签而不是内联
- mysql - 数据导入mysql表后显示异常
- python - tqdm 加载条错误
- mysql - 显示所有计数大于1的表记录
- c# - 单例返回 null(仅限 iOS Xamarin AppStore 版本)
- javascript - 更改 JavaScript 中的 HTML 属性
- javascript - 在 Web 应用程序中导入成本理解
- java - 在 do-while 循环中的 Java try-catch