#arrays #reactjs
#массивы #reactjs
Вопрос:
я пытаюсь отобразить массив с некоторой информацией и изображениями. Я пробовал использовать map, и все работает просто отлично, пока я не попытаюсь разместить изображение. Что я делаю не так?
Это мой portfolio.js
import React from "react";
import "../sass/Portfolio.scss";
import { PortfolioList } from "./data/PortfolioList";
let portfolio = PortfolioList.map((portfolio, key) => {
return (
<div className="col-md-6 portfolio-item" key={key}>
<img src={portfolio.image} alt="Imagem do Portfolio" />
<figcaption className="portfolio-info">
<h1 className="portfolio-heading">{portfolio.description}</h1>
<a href={portfolio.button} target="_blank" rel="noopener noreferrer">
Visitar
</a>
</figcaption>
</div>
);
});
const Portfolio = () => {
return (
<section id="portfolio">
<div className="separator" />
<div className="container">
<h1 className="heading-sobre">Alguns dos meus trabalhos</h1>
<div className="row">{portfolio}</div>
</div>
</section>
);
};
export default Portfolio;
Затем я создал PortfolioList со своим массивом
import barberclube from "../../img/sites/barber-clube85.png";
export const PortfolioList = [
{
image: { barberclube },
description: "Website em WordPress para uma barbearia",
button: "https://barbearia.clube85.com"
},
{
image: "https://via.placeholder.com/380x250",
description:
"Lorem ipsum dolor amet sic culture and community sports competition.",
button: "https://google.com"
}
];
Я перепробовал много вещей в моем portfoliolist.js , например:
1. Изменение изображения: на изображение: «../img/barber-clube85.png»
2. передача {barberclube} в виде строки
И я больше не знаю, что делать.
Ответ №1:
Используете ли вы CRA? Вы можете передать путь к изображению непосредственно в portfolio.image
Комментарии:
1. да, это так. Я попытался передать в PortfolioList.js массив в виде изображения: «../img/barber-clube85.png», но это не сработает.
2. Консоль. зарегистрируйте свое изображение в компоненте. С помощью CRA я получаю что-то вроде статического / мультимедийного пути. Еще одна незначительная вещь, пожалуйста, не используйте свой индекс в качестве ключа в вашем дочернем элементе. Вместо этого используйте UniqueID. Lodash предлагает вам его, если у вас есть Lodash в вашем проекте.
Ответ №2:
Это была моя ошибка. Я пытался импортировать изображение в виде
import {hero} from "../img/hero.svg";
Но правильный способ — это
import hero from "../img/hero.svg";
Извините, мне нужно немного поспать.