- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一张主图,我想多次查询并以不同尺寸获取它,以便我可以在不同尺寸的设备上使用它。
我的英雄形象在
src/images/hero.png
这是查询代码:
export const mobileHeroImage = graphql`
fragment mobileHeroImage on File {
childImageSharp {
fluid(maxWidth: 375, maxHeight: 400) {
...GatsbyImageSharpFluid
}
}
}
`;
export const query = graphql`
query {
mobileHeroImage: file(relativePath: { eq: "hero.png" }) {
...mobileHeroImage
}
}
`;
这是我在 index.js 中的组件代码:
const IndexPage = ({ data }) => {
// First console log
console.log(data);
// Second console log
console.log(getImage(data.mobileHeroImage));
首先控制台日志用图像对象记录对象:
第二个控制台日志记录未定义,即使 data
中有 mobileHeroImage
对象也是如此
多维图像将作为数组传递,如下所示:
export function MyImage({ data }) {
const images = withArtDirection(getImage(data.mobileHeroImage), [
// I would add more sizes here for different screen sizes
{
media: "(max-width: 1024px)",
image: getImage(data.smallImage),
},
])
return <GatsbyImage image={images} />
}
最佳答案
您正在混合来自 gatsby-image
的概念(从 Gatsby v2 向后)和 gatsby-plugin-image
(从 Gatsby v3 开始)。
在很多东西中,在新版本中,它们被简化为 Img
(v2) 和 GatsbyImage
(v3)。第一个采用 fluid
或 fixed
props
图像数据,就像您在片段中查询的那样 (...GatsbyImageSharpFluid
) 而 GatsbyImage
获取整个 image
props
数据。它们的查询方式不同。
此外,getImage
是一个辅助函数,因此它不是强制性的,尽管它可以使您的代码更清晰。事实来自 GatsbyImage
(v3),这就是它在您的代码中返回 undefined
的原因。
查看迁移指南以了解更多详细信息:https://www.gatsbyjs.com/docs/reference/release-notes/image-migration-guide/
也就是说,您应该根据您的要求选择一个或另一个版本。我建议使用新版本,因为 gatsby-image
目前已弃用(因此请仔细检查并删除已弃用的软件包)。
按照 GatsbyImage
方法,您的查询应该如下所示:
export const mobileHeroImage = graphql`
fragment mobileHeroImage on File {
childImageSharp {
gatsbyImageData(
width: 200
placeholder: BLURRED
formats: [AUTO, WEBP, AVIF]
)
}
}
`;
export const query = graphql`
query {
mobileHeroImage: file(relativePath: { eq: "hero.png" }) {
...mobileHeroImage
}
}
`;
注意:根据需要调整查询选项和参数
现在,您的 console.log
应该可以工作了。
// First console log
console.log(data);
// Second console log
console.log(getImage(data.mobileHeroImage));
正如我所说,您可以省略 getImage
辅助函数并直接使用 data
。
关于gatsby - Gatsby Image 插件的 getImage 返回 undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70385817/
我尝试了很多解决方案,但似乎无法找到我的代码的问题。我已经检查了路径名、文件的权限,并为图像尝试了几个不同的文件名。图像未显示。 private Character player; private I
我在从另一个类(class)获取图像时遇到了一些问题。我以前从未遇到过这个问题。有人可以指出我正确的方向吗。 package main; import java.awt.Color; import j
我有一个旧的 Java 小程序(不是我写的)需要更好的性能。 我使用的是: getToolkit().getImage(imageURL) 我的问题是: 它接缝图像将一个接一个地加载而不是并行 该请求
getImage 返回未定义,因此我的 GatsbyImage 组件未呈现。 文件结构: src/pages/gallery.js src/images(有 12 张照片,名为 photo-01.jp
我正在用 Java 制作一个基于小程序的游戏,但遇到了问题。我收到一个空指针异常,堆栈跟踪如下: at java.applet.Applet.getAppletContext(Applet.java:
我在使用 ImageIcon().GetImage() 时遇到问题 奇怪的是,它有时可以工作并向我显示带有 map 的窗口,而有时却不能。它也可以在其他计算机上完美运行,但不能在我的计算机上运行! 我
我正在通过教程进行工作:http://www.kilobolt.com/day-4-enter-the-robot.html并且在小程序中显示简单图像时遇到问题。我正在使用 IntelliJ 13 社
我正在尝试使用 getImage() 在我正在编写的应用程序中的 JPanel 上显示图像。我试了又试让它为我工作,最终发现即使路径完全不正确,它仍然不起作用,也不会像预期的那样返回 NullPoin
这是一个尝试加载图像的简单小程序,但它显示一个空白窗口 import java.applet.*; import java.awt.*; public class Mama extends Apple
我今天用 simplecv python 接口(interface)包装了 opencv。经过官方SimpleCV Cookbook我能够成功 Load, Save , 和 Manipulate图片。
我需要上传图像文件并在我的 JSF 网络应用程序中为上传的文件生成缩略图。原图保存在服务器的/home/myname/tomcat/webapps/uploads,缩略图保存在/home/myname
我一直在努力实现这个 question 的答案但不断收到错误“selected.getImage 不是函数”。 此时我已经尝试了多个不同的代码示例,但我被难住了。这似乎是一个类型错误,但我不确定在哪里
我有一个 DataGridView,其中包含一个 Image 列和一些文本列。我有一个非常简单的处理程序,允许用户从单元格中复制文本或图像并将图像和文本粘贴到其中。复制/粘贴在文本上工作正常,但粘贴在
我试图从包中的 src/文件夹中获取图像,但是我没有成功。 nekoPics[i] = tk.getImage(getClass().getResource(String.format("resour
这是一个奇怪的: 我最近将工作站从Windows 7升级到Windows10。我有一个Chat客户端,它使用以下代码从剪贴板接受图像: if (Clipboard.ContainsImage()) {
我通常使用以下方法在 Applets 中加载图像: this.getImage( getCodeBase(), "myimage.png" ); 或者 myapplet.getImage( getCo
我有一个带有自定义 LabelProvider 的 ListViewer。getText 部分工作正常,但从未调用 LabelProvider 的 getImage 方法。 我也尝试使用 Decora
我已经在这个网站和谷歌上搜索了好几天了,我很想知道为什么这不起作用。我正在制作像 FFII 这样的 2D rpg 风格游戏,并且能够根据方向使用不同的图像让角色在屏幕上走动,并且代码工作正常,直到我将
我总是得到黑色背景色,即使我将它设置为白色也是如此: SignaturePadView sigView = new SignaturePadView(Forms.Context); sigVi
本文整理了Java中org.eclipse.ui.internal.WorkbenchImages.getImage()方法的一些代码示例,展示了WorkbenchImages.getImage()的
我是一名优秀的程序员,十分优秀!