2016-08-28 7 views
64

React内のインラインbackgroundImageプロパティ内で使用する静止画像にアクセスしようとしています。残念ながら、私はこれを行う方法については乾いてしまった。リアクションインラインスタイルを使用して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>タグのために働く:

は一般的に、私は次のようにあなただけやったと思いました。誰かが2つの違いを説明することはできますか?

例:

<img src={ Background } />がうまく動作します。

ありがとうございました!

答えて

116

backgroundImageプロパティ内の中カッコが間違っています。

おそらくあなたは、画像ファイルローダーと一緒にWebPACKのを使用しているので、背景はすでに文字列でなければなりません: backgroundImage: "url(" + Background + ")"

ます。また、同じ効果を達成するために、次のようES6の文字列テンプレートを使用することができます。

backgroundImage: `url(${Background})` 
+0

私はそれを私の質問に追加する必要があります。幅と高さが設定されています(それぞれ100%/ 400px)。発生する問題は、リアクションが私が信じる静止画像をどのように扱うかによる。 – Kris

+0

それはそれでした!あなたがそれを答えたら、私はあなたにチェックマークを与えるでしょう:) – Kris

+0

素晴らしい、うれしいです!答えが更新されました: – rauliyohmc

0

require()機能を使用して、イメージをコンポーネントに取り込むこともできます。

<div style={ { backgroundImage: `url(require("images/img.svg"))` } }>

**中括弧の二組に注意。

関連する問題