2016-08-28 16 views
64

Próbuję uzyskać dostęp do statycznego obrazu do użycia wewnątrz wbudowanej właściwości backgroundImage w React. Niestety, podbiegłam sucho, jak to zrobić.Ustawianie obrazu tła za pomocą Reaktorowych stylów liniowych

Generalnie, myślałem, że po prostu nie sposób następujący:

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> 
    ); 
    } 
} 

Działa to dla <img> tagów. Czy ktoś może wyjaśnić różnicę między tymi dwoma?

Przykład:

<img src={ Background } /> działa dobrze.

Dziękujemy!

Odpowiedz

116

Kręcone nawiasy wewnątrz właściwości backgroundImage są nieprawidłowe.

Prawdopodobnie używasz WebPACK wraz z plików graficznych ładowarki, więc Tło powinno być już String: backgroundImage: "url(" + Background + ")"

Można również użyć ES6 szablony ciąg jak poniżej, aby osiągnąć ten sam efekt:

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

Powinienem był dodać to do mojego pytania. Mam zestaw szerokości i wysokości (odpowiednio 100%/400px). Pojawiający się problem wynika z tego, jak reaguje na obsługiwane statyczne obrazy. – Kris

+0

To było to! Jeśli odpowiesz, dam ci znak wyboru :) – Kris

+0

Niesamowite, cieszę się, że działa! Odpowiedź zaktualizowana :) – rauliyohmc

0

Obraz można również przesłać do komponentu za pomocą funkcji require().

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

** Uwaga dwa zestawy nawiasach klamrowych.

Powiązane problemy