javascript - React - 图像数组未正确渲染
问题描述
在这里做一个项目,我遇到了一个问题。我正在使用 API 并收到产品的图像。它看起来像这样:
我遇到的问题是图像没有出现在我的页面上,什么也没有出现。即使我尝试只在<h1>
标签中写入链接,也不会出现任何内容。我试图在控制台中记录 URL,它使用该.map
方法在那里工作。
我已经尝试过Object.keys()
and array.map()
,但它们都不起作用。
这是我的 API 获取代码:
useEffect(() => {
const options = {
method: "GET",
url: "https://asos2.p.rapidapi.com/products/v3/detail",
params: params,
headers: {
"x-rapidapi-key": "",
"x-rapidapi-host": "",
},
};
axios
.request(options)
.then(function (response) {
console.log(response.data);
setProduct(response.data);
})
.catch(function (error) {
console.error(error);
});
}, []);
// This works
product?.media?.images.map((item) => {
console.log(item.url);
});
return (
<div>
<Product
name={product?.name}
price={product?.price?.current?.text}
brand={product?.brand?.description?.replace(/(<([^>]+)>)/gi, "")}
brandName={product?.brand?.name}
aboutMe={product?.info?.aboutMe?.replace(/(<([^>]+)>)/gi, " ")}
careInfo={product?.info?.careInfo?.replace(/(<([^>]+)>)/gi, "")}
sizeAndFit={product?.info?.sizeAndFit?.replace(/(<([^>]+)>)/gi, "")}
media={product?.media?.images}
/>
</div>
);
这是它应该呈现的产品部分:
<div>
{props.media?.map((media) => {
<h1>{media.url}</h1>;
})}
</div>
该页面完全是空白的。
我错过了什么?
解决方案
我认为 return 语句中缺少map
<div>
{props.media?.map((media) => {
return(<h1>{media.url}</h1>);
})}
</div>
或者你也可以去速记
<div>
{props.media?.map((media) => <h1>{media.url}</h1>)}
</div>
推荐阅读
- vue.js - 惯性得到清除我的搜索输入类型
- python - 我想从列索引中删除日期时间戳并替换为 0,1,2,3,4 等数字
- flutter - 扑动 csv 无效的 UFT-8
- python - TCP 只能发送第一条消息
- html - 如何在表格单元格中居中输入标签?
- unreal-engine4 - 在 Niagara 中获取骨架网格体顶点位置
- java - 无法模拟 System.currentTimeMillis()
- java - 类 java.util.ArrayList 不能转换为类 com.patient.entity.CommentEntity(java.util.ArrayList 位于加载器“bootstrap”的模块 java.base 中;
- typescript - 使用作为泛型类型提供的扩展类型的泛型类型
- python - 使用链表的图书馆管理系统的二叉树