image - gatsby : 优化没有'childImageSharp' graphql 字段的图像
问题描述
我正在使用 gatsby 和 wordpress CMS 在我的 gatsby 网络应用程序上显示即将发生的事件。我正在使用插件gatsby-source-tribe-events
连接到wordpress event calendar
插件并获取事件数据。
问题是我想动态显示我的所有事件及其描述和图像,使用<GatsbyImage/>
.
如您所知,要使用上述组件显示图像,每个项目都必须有一个childImageSharp
字段graphql
我的问题是该gatsby-source-tribe-events
插件在查询图像时没有childImageSharp
字段,所以我无法动态获取所有图像 OPTIMIZED
什么是解决方法?当 childImageSharp 字段不存在时,如何使用 GatsbyImage?有没有办法将它添加到 graphql 模式?
解决方案
什么是解决方法?当 childImageSharp 字段不存在时,如何使用 GatsbyImage?
你不能。需要节点GatsbyImage
提供一定数量的数据。childImageSharp
gatsby-source-tribe-events
插件似乎完全无人维护(2 年前最后一次提交)所以我认为作者没有升级它。
说你有两个选择(至少):
<img>
如果检测到不包含childImage
节点的图像,则呈现标准标记。在那里,您可以使用另一个库应用延迟加载或任何其他模糊效果。- 检查
gatsby-plugin-remote-images
以从远程图像创建节点。我不知道这种方法是否符合您的要求或者是否可行。
有没有办法将它添加到 graphql 模式?
这就是gatsby-plugin-remote-images
将要做的。图像需要由 Gatsby 的转换器和锐器处理以创建这些childImageSharp
节点
推荐阅读
- python - 如何在不更改熊猫中其他列的情况下将特定列更改为行?
- android - 连接服务协议时出错:没有可用的 Flutter 视图
- php - 如何将值从 html 传递到 php 中的 xpath 表达式?
- javascript - 如何创建javascript倒计时?
- c++ - 我们可以在 TypeScript 中创建 std::type_index 吗?
- c# - 在asp核心中使用筛子进行分页时如何发送单个请求而不是两个请求?
- arrays - 退出循环后我的计数器被重置
- azure-devops - AzureDevops Boards - 任务项未显示,敏捷
- spring-webflux - 由于xhttp请求限制,spring webflux默认响应(sse)不是无用的吗?
- mysql - SELECT之后可以写变量吗?