Как отобразить изображение из файла js в реакции?

Я новичок в программировании и очень новичок в React. Я пытаюсь отобразить изображение из файла data.js. Я получаю данные, но не изображение. Мой console.info правильно отображает путь к изображению. Я знаю, что мой путь в порядке, потому что я пытался импортировать изображение, и оно работает нормально.

Я пытался создать файл .env, чтобы указать NODE_PATH=src, чтобы у меня был абсолютный путь, но это тоже не работает, и я думаю, что это устаревший способ обработки абсолютного пути. Я также пытался вставить случайный URL-адрес из Google, но это тоже не сработало. Это заставляет меня думать, что моя проблема не в пути.

// My app.js file 

import React from 'react';
import GetImages from './components/ImagesTest/getImages';
import './App.css';

function App() {
  return (
    <div className = "App">
      <h1 className = "header">Local Storage</h1>
      <GetImages/>
    </div>
  );
}

export default App;


// My class file 
import React, { Component } from "react";
import Data from './data';


class GetImages extends Component{

    constructor(props){
        super(props);
        this.state = {
            Data: Data
        };
    }

    render(){
        const {Data} = this.state;

        return(
            <div>
            {
                 Data.map(data=>(

                     <div>
                        { console.info(data.src) }
                        <img src= {data.src} alt = {data.alt}></img>
                        <p>{data.note}</p>
                        <p>{data.w}</p>
                        <p>{data.h}</p>
                     </div>

                ))
            }

            </div>
        )    
    }
}

export default GetImages;


// My data.js file

const pictures = [
    {
        "id": "4",
        "title": "the_cats",
        "place": "",
        "note": "This a cat picture",
        "datePhoto": "2018",
        "w": "5312",
        "h": "2988",
        "src": "/../cat1.jpg",
        "alt" : "cat image",
        "lblDate": "Date : ",
        "lblPlace": "Place : ",
        "lblNote": "Note : "
    }
]

export default pictures;

Извините, если этот вопрос слишком прост. Любая помощь была бы здоровой, потому что я здесь как-то заблудился. Большое спасибо !!

Я подозреваю, что вы не включили загрузчик файлов: проверьте эту ссылку webpack.js.org/guides/asset-management/#loading-images

fangzhzh 30.05.2019 21:38

Спасибо за Ваш ответ !! Вы правы, я этого не делал. Должен ли я создать файл webpack.config.js? Потому что у меня их нет в моих реактивных проектах, что меня удивило, потому что они были созданы автоматически, когда я немного работал с Symfony.

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

Ответы 1

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

Вы можете попробовать этот шаблон веб-пакета в качестве стартера.

Часть загрузки файла, https://blog.cloudboost.io/webpack-for-beginners-part-1-bf8d65e58ecf, объясняет filer-loader для обслуживания файла изображения.

Спасибо, я попробую это!

Jully 30.05.2019 22:25

Итак, я выполнил шаги и установил файл-загрузчик. Я могу добавить файл css и добавить URL-адрес изображения. Он отлично работает, но я все еще не могу отображать изображения из моего файла data.js. Я поместил свою папку с изображениями в общедоступную, чтобы она могла перейти в папку сборки, когда я запускаю сборку npm. Но все равно не рендерит. Любая идея, почему?

Jully 02.06.2019 23:30

Итак, я изменил путь, и он наконец-то отобразился! Спасибо за вашу помощь !

Jully 03.06.2019 00:06

Я принял это. Но меня знали в stackoverflow, и у меня было сообщение о том, что это было принято во внимание, когда у меня будет больше очков.

Jully 04.06.2019 09:31

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