Как загрузить локальные изображения в React через реквизит?

Я поместил загруженные изображения в папку images внутри моей папки public. Изображения пронумерованы от 1 до 10.

В моем файле App.js я передаю id каждого изображения в Component.js.

return(
  <div>
    {info.map((users, i) => {
      return(
        <Component key = {i} id = {info[i].id} />
      )
    })}
  </div>
)

А в файле Component.js я визуализирую вот такое изображение:

<img alt='image' src='/images/{this.props.id}.jpg'/>

Мое видение состоит в том, что я отправлю идентификатор через реквизиты из App.js, а в Component.js я буду использовать этот идентификатор для {this.props.id}.jpg для отображения соответствующего изображения идентификатора. Страница загружается, ошибок нет, но я не вижу изображения. Затем я изменил местоположение папки с изображениями и попытался сделать это:

<img alt='image' src = {require(`D:/project-name/src/images/${this.props.id}.jpg`)}/>

Но все еще сталкивается с той же проблемой. Пожалуйста, помогите мне решить эту проблему.

Похоже, во втором блоке кода вы не используете строку шаблона, из-за которой все изображения будут иметь один и тот же URL-адрес /images/{this.props.id}.jpg. Это может быть вашей проблемой.

Mark Skelton 24.12.2020 13:49

@MarkSkelton я пробовал ' src = { /images/{this.props.id}.jpg } ' , но столкнулся с той же проблемой.

Bhavesh Damor 24.12.2020 13:54

Это очень близко, но вам также не хватает знака доллара перед {this.props. Попробуйте изменить его на ${this.props

Mark Skelton 24.12.2020 13:55

@MarkSkelton Спасибо за ваш комментарий!! Теперь изображения видны.

Bhavesh Damor 24.12.2020 13:58

Отлично, я только что опубликовал это как ответ для других, которые наткнулись на этот вопрос.

Mark Skelton 24.12.2020 14:00
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
5
408
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проблема в вашем теге изображения. Попробуйте сделать строку шаблонной строкой и не забудьте добавить отсутствующий знак доллара перед {this.props.id}.

<img alt='image' src = {`/images/${this.props.id}.jpg`} />

Привет, я только что попробовал это, и мой сайт разбился. Я помещаю папку с изображениями в общую папку. Картинки там не названы по порядку вроде 0,1,2,3. Просто случайные имена. Я использовал: <img src = {/Images/${this.props.id}.png} height='300' alt='robots' />

AnatuGreen 27.03.2022 19:27

Другие вопросы по теме