如何在reactjs中映射图像
How to map images in reactjs
所以在 Reactjs class 组件中,我的状态中有一个数组,如下所示:
myArray: [
{ number: 1, title: 'Users', image: '../../../assets/images/website/homepage/users.png' },
{ number: 2, title: 'Clients', image: '../../../assets/images/website/homepage/clients.png' },
{ number: 3, title: 'Admin', image: '../../../assets/images/website/homepage/admins.png' },
]
我这样映射数组:
{this.state.myArray.map((item, index) => (
<Box key={index} className="col-sm-12">
<img src={ item.image } className="img-fluid" alt={item.title} />
<Typography variant="h4">{item.number}</Typography>
</Box>
))}
现在,一切正常,除了图像不显示,我真的不明白我哪里错了。
请注意,如果我使用 require 方法直接在 src 中复制其中一个图像链接,它就可以工作。请帮忙。
我认为你缺少要求。
喜欢:
<img src={require(item.image)} />
你可以require dynamically with proper expression:
将image
更改为(删除../../../assets/images/website/homepage/
和.png
):
const myArray = [
{
number: 1,
title: 'Users',
image: 'users',
},
{
number: 2,
title: 'Clients',
image: 'clients',
},
{
number: 3,
title: 'Admin',
image: 'admins',
},
]
并在 UI 处呈现(添加 目录 路径 和 扩展名里面require
):
{myArray.map((item, index) => (
<Box key={index} className="col-sm-12">
<img
src={require('../../../assets/images/website/homepage/' +
item.image +
'.png')}
className="img-fluid"
alt={item.title}
/>
<Typography variant="h4">{item.number}</Typography>
</Box>
))}
为什么有效?:
Webpack 可以理解这个表达式,generating context about directory and extension,并且可以加载所有匹配的模块。
所以在 Reactjs class 组件中,我的状态中有一个数组,如下所示:
myArray: [
{ number: 1, title: 'Users', image: '../../../assets/images/website/homepage/users.png' },
{ number: 2, title: 'Clients', image: '../../../assets/images/website/homepage/clients.png' },
{ number: 3, title: 'Admin', image: '../../../assets/images/website/homepage/admins.png' },
]
我这样映射数组:
{this.state.myArray.map((item, index) => (
<Box key={index} className="col-sm-12">
<img src={ item.image } className="img-fluid" alt={item.title} />
<Typography variant="h4">{item.number}</Typography>
</Box>
))}
现在,一切正常,除了图像不显示,我真的不明白我哪里错了。
请注意,如果我使用 require 方法直接在 src 中复制其中一个图像链接,它就可以工作。请帮忙。
我认为你缺少要求。
喜欢:
<img src={require(item.image)} />
你可以require dynamically with proper expression:
将image
更改为(删除../../../assets/images/website/homepage/
和.png
):
const myArray = [
{
number: 1,
title: 'Users',
image: 'users',
},
{
number: 2,
title: 'Clients',
image: 'clients',
},
{
number: 3,
title: 'Admin',
image: 'admins',
},
]
并在 UI 处呈现(添加 目录 路径 和 扩展名里面require
):
{myArray.map((item, index) => (
<Box key={index} className="col-sm-12">
<img
src={require('../../../assets/images/website/homepage/' +
item.image +
'.png')}
className="img-fluid"
alt={item.title}
/>
<Typography variant="h4">{item.number}</Typography>
</Box>
))}
为什么有效?:
Webpack 可以理解这个表达式,generating context about directory and extension,并且可以加载所有匹配的模块。