javascript - 如何在我的 React 组件的映射对象中预加载我的图像?
问题描述
我有一个从对象映射并列在网格中的产品列表,显示图像和标题。目前,当用户到达产品视图时,产品图像似乎需要一些时间才能加载,而不是立即可见。
我知道有一种方法可以预加载它们,但是我不确定在这种情况下如何做到这一点。我该怎么办?
//ProductData.js
const ProductData = [
{
id: 1,
name: 'Product 1',
slug: 'product-1',
static_img: 'product_1_static.jpg',
},
{
id: 2,
name: 'Product 2',
slug: 'product-2',
static_img: 'product_2_static.jpg',
},
{
id: 3,
name: 'Product 3',
slug: 'product-3',
static_img: 'product_3_static.jpg',
},
];
export default ProductData
// ProductResults.js
function ResultsList() {
const { choices, setChoices } = useContext(ChoicesContext);
const ProductsResult = ProductData.filter(x => x.categories.includes(choices.category) && x.waterTypes.includes(choices.waterType) && x.feedTypes.includes(choices.feedType));
return (
<div id="productResults">
{ProductsResult.map((item, i) => (
<div key={i} className="product">
<Link
onClick={() => setChoices({ ...choices, productSelected: item.name })}
to={{
pathname: '/products/' + item.slug,
name: item.name,
}}
>
<img src={require(`../images/sequences/${item.static_img}`)} alt="" />
<h4>{item.name}</h4>
</Link>
</div>
))}
</div>
)
}
解决方案
推荐阅读
- vagrant - 如何一次销毁所有流浪虚拟机?
- mysql - MySQL 将列总和转换为以列名作为值的行
- react-native - 反应本机应用程序中的底部标签背景颜色
- .net - Student 是一个命名空间,但用作类型
- python - 无法从 az cli 部署 python 应用程序
- flutter - RenderBox 未布局堆栈
- python - 有没有办法将天蓝色的 Eventhub 检查点存储到远程存储桶,例如谷歌云存储桶?
- c# - 通过 DataTableRequest 在数据表中搜索小数时是否存在已知问题?
- java - Java 8 Stream 如果不执行收集功能,则过滤和映射功能不起作用
- javascript - jQuery .val() 返回未定义