最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - importing images locally in react - Stack Overflow

programmeradmin9浏览0评论

I am not understanding how import works in React. I'm currently using create-react-app. I have a folder inside ponents folder named images:

- src
  - ponents
    - images

Insides the ponents folder I also have a js file named ProductSquare.js. I am trying to import a picture from images folder using this line

import bumper from './images/bumper1.png';

I have tried changing it to only bumper1.png and many other options. What am I doing wrong here? ( would appreciate a better way to do it in the future).

Is this how programmers import pictures in the real world?

I am not understanding how import works in React. I'm currently using create-react-app. I have a folder inside ponents folder named images:

- src
  - ponents
    - images

Insides the ponents folder I also have a js file named ProductSquare.js. I am trying to import a picture from images folder using this line

import bumper from './images/bumper1.png';

I have tried changing it to only bumper1.png and many other options. What am I doing wrong here? ( would appreciate a better way to do it in the future).

Is this how programmers import pictures in the real world?

Share Improve this question edited Jun 13, 2018 at 19:27 ischenkodv 4,2552 gold badges29 silver badges37 bronze badges asked Jun 13, 2018 at 19:19 user9878643user9878643 3184 silver badges15 bronze badges 1
  • 1 possible duplicate: stackoverflow./questions/43823289/… – Ethan Ryan Commented Jun 13, 2018 at 19:24
Add a ment  | 

4 Answers 4

Reset to default 2

Try using <img src={require('./images/bumper1.png')} />

P.S. The similar question goes here

If you are using something like Webpack (which create-react-app does) then yes, you can just import the images (and most other file types). They end up getting converted into something (I believe images end up as a data URL).

If your folder structure looks like this:

  • src
    • ponents
    • ProductSquare.js
    • images

Then you should be able to use the image like this:

// in ProductSquare.js
import React from 'react';
import bumper from './images/bumper1.png';

class ProductSquare extends React.Component {
  render() {
    return <img src={ bumper } />;
  }
}

If it isn't, double-check that all of the files are named what you think they should be (check for typos and what not).

If everything is correct and it isn't working, try just adding console.log(bumper) before the class. Then:

  • if it outputs a string that looks like data:blahblah it should work
  • if it outputs undefined, the image may not be named properly
  • if it doesn't output, you might not be using ProductSquare correctly

Using the public Folder

Note: this feature is available with [email protected] and higher.

Create a folder in public folder, for example, 'image', add your photos there.

After that wherever you want you can use image address like this:

<img className="img1" src="/image/pic.jpg" alt=""/>

You Need to use .default after require

<img src={require('./images/bumper1.png').default} />
发布评论

评论列表(0)

  1. 暂无评论