I want to add a background image in React.js by using a style definition, which works:
let imgUrl = \'images/berlin.jpg\'
let styles = {
root: {
Have you tried somthing like this :
let imgUrl = 'images/berlin.jpg'
let styles = {
root: {
background: 'url('+ imgUrl + ') noRepeat center center fixed',
backgroundSize: 'cover',
}
Inspired from this post: Stretch and scale a CSS image in the background - with CSS only
This works:
let imgUrl = 'images/berlin.jpg'
let styles = {
root: {
backgroundImage: 'url(' + imgUrl + ')',
backgroundSize: 'cover',
overflow: 'hidden',
},
...
If you use an image as background, is better to use the 'backgroundImage' property.
If you use the 'background' property, this may cause issues on reloading the component (e.g. 'cover' attribute will not apply properly).
Solution proposed:
let imgUrl = 'images/berlin.jpg';
<div className = 'Component-Bg'
style = {{ backgroundImage: `url(${imgUrl})`,
backgroundSize: 'cover',
backgroundPosition: 'center center',
backgroundRepeat: 'no-repeat',
}}>
</div>
Clarifing another answer
let imgUrl = 'images/berlin.jpg'
let styles = {
root: {
backgroundImage: `url(${ imgUrl })`
backgroundRepeat : 'no-repeat',
backgroundPosition: 'center',
}
}