1

I am trying to require pictures from local path:

{userImages.map((image) => {
                  return (
                    <Carousel.Item key={image.id}>
                      <Card.Img src={require(image.picture)} />

The value inside the variable looks like this:

../../media/female/f1.jpg

The error I am receiving:

Cannot find module '../../media/female/f1.jpg'

I tried another solution to require before the return like this:

const pic = require(userImages[0].picture);

still received the same error. If I user require at the top of the component's file it does require correctly from this path.

Alsakka
  • 155
  • 10

2 Answers2

0

My proposal is to do something like this:

  1. import imageSource from "../../media/male/m1.jpg"

  2. <Card.Img src={imageSource} />

Maxim Fedarau
  • 191
  • 1
  • 1
  • 10
0

Found the solution from this link : Dynamically Loading Local Images with ReactJS

it was to create context for the folder of images first at the top of the file like this:

const maleImages = require.context("../../media/male", true);
const femaleImages = require.context("../../media/female", true);

Then within the return include the image like this:

{userImages.map((image) => {
                  let img;
                  switch (user.gender) {
                    case "female":
                      img = femaleImages(image.picture);
                      break;
                    case "male":
                      img = maleImages(image.picture);
                      break;
                    default:
                  }

Thanks guys for your help!

Alsakka
  • 155
  • 10