Рендеринг изображения в компоненте react

#javascript #reactjs

#javascript #reactjs

Вопрос:

У меня возникла проблема с рендерингом моих изображений из моего файла ‘. / src / img’ и я понятия не имею, где я ошибаюсь…

У меня есть объект, у которого есть ключ «image», который возвращает имя файла (т.е.: ‘filename.jpg ‘). Как указывалось ранее, изображения хранятся в папке ‘img’ в папке ‘src’.

в моем компоненте я возвращаю изображение следующим образом :

 <div className='image'>
    <img src={require(`../img/${details.image}`)} alt={details.name} />
    {
        console.log(details.image)
    }
  </div>
 

я использую функцию require, как и предполагалось, (я думаю ?! ^^) и указываю папку и извлекаю имя изображения с $(details.image) помощью .
Как вы можете видеть, я делаю консоль.журнал подробного изображения, который в обязательном порядке возвращает мне имена файлов.

Когда я захожу в консоль и проверяю рендеринг, у меня нет проблем с alt, но параметр src выдает мне [object Module]

И вот тут я как бы теряюсь в том, что происходит и что я там сделал не так.

Заранее спасибо

Комментарии:

1. требовать не требуется, просто добавьте путь к изображению в строку. И убедитесь, что у вас есть папка img в общедоступном пути.

2. Итак, я сделал, как вы сказали, и все работает нормально. Я попытался выполнить сборку только для проверки и без проблем. Большое вам спасибо! (теперь рендеринг выглядит следующим образом: <img src={‘../img/’ details.image} alt={details.nom} />

Ответ №1:

вместо модуля require попробуйте импортировать изображение, как предложено в документах creat-react-app.

импортировать логотип из ‘./logo.jpeg ‘;

 import React from 'react';
import logo from './logo.png'; // <<<< image

console.log(logo); // /logo.84287d09.png

function Header() {
  // Import result is the URL of your image
  return <img src={logo} alt="Logo" />;   // <<<<<< Adding to src attribute.
}

export default Header;
 

Комментарии:

1. Большое вам спасибо, я использовал предыдущий ответ, но ваш ответ более чем логичен. Я думаю, мне, возможно, придется использовать состояния, но я мог бы подумать об этом раньше ^^