'how to show the background image to a div by using props in react
I am using react and now I want to add a background image in a div. the image url is coming from props. But the background is not shown the code of the inline css is following
import React from 'react'
export default function City(props) {
const image = props.img ;
return (
<div className='col-lg-4 col-md-4 col-sm-10 ' style={{
backgroundImage: `url(${image})`}}>
<p>{image}</p>
</div>
)
}
Now what I do to show the background image in a div?
Solution 1:[1]
You're almost right, just add the height and width of the div.
function City(props) {
const image = props.img;
return (
<div
style={{ height:"300px", width:"300px", backgroundImage: `url(${image})` }}
>
<p>{image}</p>
</div>
);
}
ReactDOM.render(
<City img="https://lh3.googleusercontent.com/ogw/ADea4I6PTtu7DPMQ_R27dQUjfvh2Zol_ehq8vIxq8c3DOw=s32-c-mo" />,
document.body
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
Solution 2:[2]
In styled components and material ui libraries you can pass props to styles like so:
Styled Components version:
https://styled-components.com/docs/basics#adapting-based-on-props
Material UI version:
https://mui.com/styles/basics/#adapting-based-on-props
So in the end you can pass your props further to the styles as props.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Jay Lu |
| Solution 2 | Máté Majoros |
