如何在 React 中预加载图像?
How to preload images in React?
我有一组图片,例如
var imgsArray = [];
imgsArray[0] = new Image();
imgsArray[0].src = "https://upload.wikimedia.org/wikipedia/commons/b/b6/Queen_Elizabeth_II_in_March_2015.jpg";
imgsArray[1] = new Image();
imgsArray[1].src = "https://upload.wikimedia.org/wikipedia/commons/b/b6/Queen_Elizabeth_II_in_March_2015.jpg";
我想将此数组中的图像添加到 React 组件返回的 JSX 中。我该怎么做?
我尝试了以下方法:
<ImageList cols={1}>
{imgsArray.map((img) => (
<ImageListItem key={img.src}>
img
</ImageListItem>
</ImageList>
但是没有出现图片,也没有出现任何错误。
我还尝试在 img
周围放置大括号,即 {img}
并收到错误:
Uncaught Error: Objects are not valid as a React child (found: [object HTMLImageElement]). If you meant to render a collection of children, use an array instead.
实例化元素并设置src
属性足以开始预加载图像,无需将其附加到DOM。
const images = ['someImageUrl.jpg', 'someOtherImageUrl.jpg'];
for (const image of images) {
const imageElement = new Image();
imageElement.src = image;
}
<ImageList>
{images.map((img) => (
<ImageListItem key={img}>
<img src={img} />
</ImageListItem>
))}
</ImageList>
我有一组图片,例如
var imgsArray = [];
imgsArray[0] = new Image();
imgsArray[0].src = "https://upload.wikimedia.org/wikipedia/commons/b/b6/Queen_Elizabeth_II_in_March_2015.jpg";
imgsArray[1] = new Image();
imgsArray[1].src = "https://upload.wikimedia.org/wikipedia/commons/b/b6/Queen_Elizabeth_II_in_March_2015.jpg";
我想将此数组中的图像添加到 React 组件返回的 JSX 中。我该怎么做?
我尝试了以下方法:
<ImageList cols={1}>
{imgsArray.map((img) => (
<ImageListItem key={img.src}>
img
</ImageListItem>
</ImageList>
但是没有出现图片,也没有出现任何错误。
我还尝试在 img
周围放置大括号,即 {img}
并收到错误:
Uncaught Error: Objects are not valid as a React child (found: [object HTMLImageElement]). If you meant to render a collection of children, use an array instead.
实例化元素并设置src
属性足以开始预加载图像,无需将其附加到DOM。
const images = ['someImageUrl.jpg', 'someOtherImageUrl.jpg'];
for (const image of images) {
const imageElement = new Image();
imageElement.src = image;
}
<ImageList>
{images.map((img) => (
<ImageListItem key={img}>
<img src={img} />
</ImageListItem>
))}
</ImageList>