即使没有数据,数组仍然映射
Array still mapping even with no data
我有一个网站正在映射它从 JSON 文件中显示的产品。 JSON 看起来像这样。
"litter3": [
{
"name": "Bates",
"description": "Cute",
"image": "./puppies/boo/bates.jpg"
},
{
"name": "Blade",
"description": "This one is fiesty",
"image": "./puppies/boo/blade.jpg"
},
{
"name": "Blair",
"description": "Cute",
"image": "./puppies/boo/blair.jpg"
},
等等。
页面映射方式如下:
{litter1.map((litter1) => (
<div className="col-sm-4" key={litter1.name}>
<img
className="homecard frame"
src={litter1.image}
alt={litter1.name}
/>
<h1 className="puppyname">{litter1.name}</h1>
<p className="puppysubtitle">{litter1.description}</p>
</div>
))}
这是按预期工作的。但是,当 JSON 数据为空时,就会出现问题。
"litter4": [
{
"name": "",
"description": "",
"image": ""
},
{
"name": "",
"description": "",
"image": ""
},
理想情况下,我希望我的客户能够拥有这些已经格式化的代码片段,她可以在必要时填写这些代码,不需要时留空。
问题是当数据不存在时,页面仍会映射图像。
如果没有提供数据,我该如何防止这种情况发生?
这是可能的,还是有另一种方法可以做到这一点?
Link to github repo
预先感谢您的帮助。
您可以在执行映射之前简单地对数组进行过滤
litter1.filter(x=>x.title!=='').map((litter1) => (
你也可以有其他条件。
我有一个网站正在映射它从 JSON 文件中显示的产品。 JSON 看起来像这样。
"litter3": [
{
"name": "Bates",
"description": "Cute",
"image": "./puppies/boo/bates.jpg"
},
{
"name": "Blade",
"description": "This one is fiesty",
"image": "./puppies/boo/blade.jpg"
},
{
"name": "Blair",
"description": "Cute",
"image": "./puppies/boo/blair.jpg"
},
等等。 页面映射方式如下:
{litter1.map((litter1) => (
<div className="col-sm-4" key={litter1.name}>
<img
className="homecard frame"
src={litter1.image}
alt={litter1.name}
/>
<h1 className="puppyname">{litter1.name}</h1>
<p className="puppysubtitle">{litter1.description}</p>
</div>
))}
这是按预期工作的。但是,当 JSON 数据为空时,就会出现问题。
"litter4": [
{
"name": "",
"description": "",
"image": ""
},
{
"name": "",
"description": "",
"image": ""
},
理想情况下,我希望我的客户能够拥有这些已经格式化的代码片段,她可以在必要时填写这些代码,不需要时留空。
问题是当数据不存在时,页面仍会映射图像。
这是可能的,还是有另一种方法可以做到这一点?
Link to github repo
预先感谢您的帮助。
您可以在执行映射之前简单地对数组进行过滤
litter1.filter(x=>x.title!=='').map((litter1) => (
你也可以有其他条件。