Передача картинок в компонент через пропсы в React.js
Я только-только начинаю изучать React.js и его подходы как таковые, поэтому если кто-то посчитает вопрос глупым и прочее - не судите строго. Я верстаю сайт, где на главной странице у меня отображается перечень услуг - компонент <ServiceList />
, состоящий, в свою очередь, из компонентов <ServiceItem />
. Вот мой шаблон компонента <ServiceItem />
:
const ServiceItem = (props) => {
return (
<div>
// Желаемая картинка, которая чхать хотела на пропсы
<img src={props.service.img}>
// Описание услуги, которое замечательно подтягивается пропсами
<span>{props.service.title}</span>
</div>
);
}
Сам компонент я в дальнейшем импортирую в ServiceList
компонент, где по задумке с помощью массива объектов будет отображаться столько компонентов ServiceItem
, сколько мне нужно, используя пропсы, которые мне нужны. Вот так выглядит компонент <ServiceList />
:
import React, { useState } from 'react';
import ServicesItem from './ServiceItem';
const ServicesList = () => {
const [services] = useState ([
{id: 1, img: '../../../src/img/santech/Смеситель on.png', title: 'Установка смесителя',},
{id: 2, title: 'Проверка счетчиков',},
{id: 3, title: 'Магнитный ключ',},
и так далее.....
])
return (
<div>
{services.map(service =>
<ServicesItem
service={service}
key={service.id}
/>
)}
</div>
);
}
Так вот, с заголовками услуг ( props.service.title ) проблем нет, всё динамически подтягивается как надо, а вот с картинками иллюстрациями ( props.service.img ) я намучался уже. Картинки мои хранятся в файле проекта, в пути ../../../src/img/santech/...
и компонент их видеть не видит
Я почитал пару статей и пару похожих вопросов на форумах и понял, что вроде как, то что я хочу сделать вообще не реализуемо. Что если заголовок строкой может передаться через пропсы, то url до картинки то же текстом через пропсы передаться не может. Я пробовал и через инлайновый стиль BackgroundImage
, и пробовал пути менять на абсолютные (http://localhost/.....
).
Вероятнее всего, я просто делаю "по-джуниорски" и то, что я хочу передать url картинки через хук useState() - делать не стоит. Опытные разработчики, подскажите новичку в реакте, реализуема ли передача урла картинки через данных хук? Задумка такая, что я в одном месте, в том самом массиве объектов, при желании мог бы поменять заголовок любой услуги на другой, и любую картинку услуги на другую. По этому, желательно, не отходить далеко от идеи импортов пропсов через массив объектов.
Заранее спасибо!