İşte ES6 aracılığıyla web paketindeki görüntüleri ve simgeleri içe aktarmak için mevcut iş akışım:
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} />
Bu hızla dağınık hale geliyor. İşte istediğim şey:
import * from './images'
<img src={doggy} />
<img src={turtle} />
Tüm dosyaları belirli bir dizinden dinamik olarak adlarının uzantısı olarak içe aktarmanın ve sonra bu dosyaları gerektiği gibi kullanmanın bir yolu olması gerektiğini düşünüyorum.
Bunun yapıldığını gören ya da en iyi yol hakkında düşüncesi olan var mı?
GÜNCELLEME:
Seçilen cevabı kullanarak şunu yapabildim:
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
tür bir dönüş değeri beklediğini belirtmek isterim . Senin durumunda,forEach
onun yerine iyi bir ol ' kullanırdı.