I am using create-react-app for my react project. It has got webpack configured for importing images. I wish to import multiple images (say 10) from a images folder into a component. The easiest way of doing this would be to add multiple import statement such as -
import Img0 from '../images/0.png';
import Img1 from '../images/1.png';
import Img2 from '../images/2.png';
import Img3 from '../images/3.png';
import Img4 from '../images/4.png';
import Img5 from '../images/5.png';
import Img6 from '../images/6.png';
...
The above code would not be a good choice when we have multiple files to import. Is there a way to add the import statements in a loop? I tried adding for loop but I was unable to modify the variables Img0, Img1 etc. (using ES6 `` didn't work as it converted the variable to a string)
You can't use a single import statement, because the whole point of import
and export
that dependencies can be determined statically, i.e. without executing code, but you can do this:
function importAll(r) {
let images = {};
r.keys().map(item => { images[item.replace('./', '')] = r(item); });
return images;
}
const images = importAll(require.context('./images', false, '/\.png/'));
<img src={images['0.png']} />