Así que aquí está mi flujo de trabajo actual para importar imágenes e íconos en el paquete web a través de 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} />
Esto se complica rápidamente. Esto es lo que quiero:
import * from './images'
<img src={doggy} />
<img src={turtle} />
Siento que debe haber alguna forma de importar dinámicamente todos los archivos de un directorio específico con su nombre sin extensión, y luego usar esos archivos según sea necesario.
¿Alguien vio esto hecho, o tiene alguna idea sobre la mejor manera de hacerlo?
ACTUALIZAR:
Usando la respuesta seleccionada, pude hacer esto:
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']} />
reactjs
webpack
ecmascript-6
klinore
fuente
fuente

.mapespera un valor de retorno. En su caso, uno usaría un buen ol 'en suforEachlugar.r.keys.().map(...)directamente ...Respuestas:
No en ES6. El objetivo de
importyexportes que las dependencias se pueden determinar estáticamente , es decir, sin ejecutar código.Pero dado que está usando webpack, eche un vistazo a
require.context. Debería poder hacer lo siguiente:fuente
craimportAllno devolvió nada.Es fácil. Puede usar
require(un método estático, la importación es solo para archivos dinámicos) dentro delrender. Como el siguiente ejemplo:fuente
Tengo un directorio de banderas de países png llamado como au.png, nl.png, etc. Así que tengo:
index.js
Leí un archivo como este:
CountryFlagByCode.js
fuente
Un enfoque funcional para resolver este problema:
fuente
ACTUALIZAR Parece que no entendí bien la pregunta. @Felix lo hizo bien, así que verifique su respuesta. El siguiente código funcionará solo en un entorno Nodejs.
Agregar un
index.jsarchivo en laimagescarpetaEsto le permitirá importar todo desde otro archivo y Wepback lo analizará y cargará los archivos necesarios.
fuente