Итак, вот мой текущий рабочий процесс для импорта изображений и значков в веб-пакет через ES6:
import cat from './images/cat1.jpg'
import cat2 from './images/cat2.svg'
import doggy from './images/doggy.png'
import turtle from './images/turtle.png'
<img src={doggy} />
Это быстро становится грязным. Вот что я хочу:
import * from './images'
<img src={doggy} />
<img src={turtle} />
Я чувствую, что должен быть какой-то способ динамически импортировать все файлы из определенного каталога в качестве их имени без расширения, а затем использовать эти файлы по мере необходимости.
Кто-нибудь видел, как это делается, или есть какие-то мысли о том, как лучше это сделать?
ОБНОВИТЬ:
Используя выбранный ответ, я смог сделать это:
function importAll(r) {
let images = {};
r.keys().map((item, index) => { images[item.replace('./', '')] = r(item); });
return images;
}
const images = importAll(require.context('./images', false, /\.(png|jpe?g|svg)$/));
<img src={images['doggy.png']} />
.map
такой тип ожидает возвращаемого значения. В вашем случаеforEach
вместо этого можно было бы использовать старый добрый .