这是我的用例:
- 我将在博客文章中添加图像。
- 我无法设置固定尺寸来渲染这些图像,因为每个图像都可能具有独特的比例
- 例如:我可能会上传 的方形图像
400 x 400
或矩形图像400 x 200
来自:https ://nextjs.org/docs/api-reference/next/image
要渲染图像,next/image
需要您定义尺寸,方法是直接在<Image/>
元素上设置,或者在父元素上设置。这很好,因为它可以防止图像加载阶段的任何布局偏移。
但是由于每个图像都有自己的尺寸,我可以为每个图像使用相同的尺寸。
这是我需要的结果。
我怎样才能做到这一点?
我目前的想法:
当我上传图片时,我还必须保存它的尺寸。在我开始使用之前next/image
,我会简单地保存图像src
。现在我必须保存类似的东西:
post: {
images: [
{
src: "https://.../image1.jpeg",
width: X, // SHOULD SAVE WIDTH
height: Y // AND HEIGHT
}
]
}
所以我可以像这样渲染它:
const image = post.images[0];
return(
<Image
src={image.src}
width={image.width}
height={image.height}
/>
);
这是应该怎么做的吗?有没有更简单的解决方案?