Reputation: 11
I am creating a web application with react. Currently I am trying to create cards that contain header text and an image.
My current problem is that when I import the image and try to use it like this:
import iwatch from './images/iwatch.jpg';
...
<img src = {iwatch} />
the image seems to appear but is displayed as 0x0. I am able to use css' background-image to get around this but creating css classes for each card is not the route I would like to take.
I read every post with the same issue as mine and attempted all solutions listed but nothing ever seemed to work.
Problem component:
const CategorySelectionContainer = () => {
const categories = [
{
name: "Cell Phone",
},
{
name: "Tablet",
},
{
name: "Smart Watch",
}
];
return (
<div>
<div class = 'container'>
<h2 class = 'center-text'>
<strong>
Select a device to get started.
</strong>
</h2>
<div class = 'justify'>
{categories.map((cat) =>
<div key = {cat.name} class = 'card card-2 center-text card-container'>
<div class = 'image'>
<h4>{cat.name}</h4>
<img style={{width:'auto',height:'auto'}} class = 'img' url = '/images/iwatch.jpg'/ >
</div>
</div>
)}
</div>
</div>
</div>
);
};
export default CategorySelectionContainer
currently the image is in the public folder which is why i just reference the image without any curly braces.
I tried:
I have a feeling it is something css related but I just have no idea what could be wrong. edit: I am able to use the in the app component and it displays correctly. Still not sure why.
Upvotes: 0
Views: 244
Reputation: 11
In the code you have pasted in, you have used url
to give the image tag a source link, please use src
.
Another thing, use className instead of class.
<img style={{width:'auto',height:'auto'}} className='img' src='/images/iwatch.jpg'/ >
To get this work, the '/images/iwatch.jpg' needs to be in the right place, otherwise you can use the imported one like
<img style={{width:'auto',height:'auto'}} className='img' src={iwatch} / >
Upvotes: 1