Это потому, что require используется только для импорта объектов javascript (классов, объектов, функций, ...), но не изображений. При настройке фонового изображения ожидается только строка, а не объект. Вот почему ваше второе решение работает.
Обратите внимание, что вы также можете определять свойства стиля с помощью объекта со свойствами, записанными в camelCase.
Учитывая, что ваше изображение доступно через yourdomain.com/images/Large/{...}.jpg
. Вы должны хорошо делать
const path = (imageDescription[currentIndex]).imagePath;
const fullPath = `url(/images/Large/${path}.jpg)`;
return (
<div style={{ backgroundImage: fullPath }} />
);
Или немного быстрее
const path = (imageDescription[currentIndex]).imagePath;
const backgroundImage = `url(/images/Large/${path}.jpg)`;
return (
<div style={{ backgroundImage }} />
);
Что работает, потому что запись объекта как { object }
эквивалентна записи { object: object }