Возможно ли это только с внешними URL-адресами, а не с локальными?

Я пытаюсь создать фотогалерею, используя реагирующие изображения, URL-адреса правильные, но сами фотографии не загружаются в мое веб-приложение. Я получаю значок сломанного изображения при переключении modalIsOpen:false на true.

Я пробовал искать примеры тех же проблем и альтернатив, например, правильно ли настроен компонент или расширяю ли я его прямо в классе.

import React, { Component } from 'react';
import Carousel, { Modal, ModalGateway } from 'react-images';

import blksmith from '../images/gallery/illustration/Blacksmith.jpg';
import mage from '../images/gallery/illustration/Mage.jpg';
const images =
[
    {
        src:{blksmith}

    } ,
    {
        src:{mage}
    }

];
class illuGallery extends Component {
    state = { modalIsOpen: false }
    toggleModal = () => {
      this.setState(state => ({ modalIsOpen: !state.modalIsOpen }));
    }
    render() {
      const { modalIsOpen } = this.state;

      return (
        <ModalGateway>
          {modalIsOpen ? (
            <Modal onClose = {this.toggleModal}>
              <Carousel 

                views = {images} 
              />
            </Modal>
          ) : null}
        </ModalGateway>
      );
    }
  }
export default illuGallery;

Это находится в фактическом файле Gallery.js, веб-странице, которая отображает галерею.

import React from 'react';
import Layout from "../components/layout";
import IlluPhotos from "../components/illustrationGallery";
import SEO from "../components/seo";
import './gallery.scss';


const GalleryPage = () => {
    return (
        <Layout>
            <div style = {{width:'100%',height:'250px'}}>
                <SEO title = "Gallery" />
                <IlluPhotos/>


            </div>
        </Layout>
    )
}
export default GalleryPage;

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

Привет, Брэд, когда вы просматриваете сломанное изображение в браузере, какой там отображается источник?

Derek Nguyen 12.07.2019 07:11

Привет, Дерек, там написано https://localhost:8000/src/images/gallery/illustration/Black‌​smith.jpg, и то же самое происходит, когда я проверяю другой, за исключением Mage.jpg

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

Ответы 2

Вам не нужно импортировать изображения.
Согласно документация по реактивным изображениям, вам просто нужно передать путь к изображению в виде строки компоненту <Carousel>, как в этом примере ниже:

import React from 'react';
import Carousel from 'react-images';

const images = [{ src: 'path/to/image-1.jpg' }, { src: 'path/to/image-2.jpg' }];

class Component extends React.Component {
  render() {
    return <Carousel views = {images} />;
  }
}

Я пробовал это, и это не работает. Но я нашел ответ! Спасибо хоть байтун!

Brad G. 13.07.2019 04:56
Ответ принят как подходящий

В итоге я добавил изображения, которые хотел для галереи, в общую папку, как указано ниже в этом сообщение.

Поскольку https://localhost:8000 появлялся перед ссылками на изображения, которые я хотел использовать.

Всем спасибо за помощь в поиске ответа!!

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