【发布时间】:2020-04-27 04:22:35
【问题描述】:
每个人。我对 React Js 相当陌生,在尝试从数组中渲染图像时遇到了困难。我的代码是:
import { home } from "../homeObj";
const Logos = ({ title, img, img2, img3, key }) => {
return (
<>
<div className={styles.anaShif} key={key}>
<h2 className={styles.h2}> {title} </h2>
<div className={styles.logos}>
<img
id={img.id}
src={img}
alt={img.alt}
className={styles.img}
srcSet={`${img2} 2x,
${img3} 3x`}
/>
</div>
</div>
</>
);
};
function Trusted() {
const logoComponent = home.map((_objects, i, id) => {
if (home[i].id === "logos") {
return (
<>
<Logos
key={i}
id={id}
title={home[i].title}
img={home[i].logos[i].src}
/>
</>
);
}
});
return (
<>{logoComponent}</>
);
}
export default Trusted;
和{家}:
export const home = [
{
id: "logos",
title: "Welcome to",
logos: [
{
id: 1,
alt: "car",
src: require("./logo_06.png"),
src2: require("./logo_06@2x.png"),
src3: require("./logo_06@2x.png"),
},
{
id: 2,
alt: "red-car",
src: require("./logo_07.png"),
src2: require("./logo_07@2x.png"),
src3: require("./Tlogo_07@3x.png"),
},
],
]
发生的情况是我只能显示 logos 数组的第二个元素的图像,就像 React Js 完全跳过了第一个元素(id,img.src,alt)。
我想要做的是能够同时显示两个图像并动态添加元素,当一个新元素被添加到 {home} 时,它应该在没有硬编码的情况下显示。
任何帮助将不胜感激。
【问题讨论】:
-
您正在对 home 进行迭代,而应该对徽标进行迭代。根据 type==='logos' 过滤主页,然后迭代 logos 数组。