我试图访问一个静态图像在React内的内联backgroundImage属性中使用。不幸的是,我已经不知道该怎么做了。

总的来说,我认为你是这样做的:

import Background from '../images/background_image.png';

var sectionStyle = {
  width: "100%",
  height: "400px",
  backgroundImage: "url(" + { Background } + ")"
};

class Section extends Component {
  render() {
    return (
      <section style={ sectionStyle }>
      </section>
    );
  }
}

这适用于<img>标签。有人能解释一下两者的区别吗?

例子:

<img src={Background} />工作得很好。

谢谢你!


当前回答

将图像复制到React组件的文件夹中。 复制以下代码:

<div className="welcomer" style={{ backgroundImage: url(${myImage}) }}></div>

使用CSS为.welcomer指定一个高度,以便您可以看到所需大小的图像。

其他回答

这对我很有效

style={{backgroundImage: url(${require("../assets/pet4.jpeg").default})}}

这对我来说很管用:

  import Background from '../images/background_image.png';
    
  <div className=...
       style={{
              background: `url(${Background})`,
            }}
    >...</div>

你可以试试用img

backgroundImage: url(process.env.PUBLIC_URL + "/      assets/image_location")

backgroundImage属性中的花括号是错误的。

可能你正在使用webpack和图像文件加载器,所以Background应该已经是一个字符串: backgroundImage: "url(" + Background + ")"

你也可以使用下面的ES6字符串模板来达到同样的效果:

backgroundImage: `url(${Background})`

更新至17.05.22 而不是:

backgroundImage: "url(" + { Background } + ")"

do:

backgroundImage: "url(" + Background + ")"