Gatsby:在 GraphQL 查询中允许不存在的字段
Posted
技术标签:
【中文标题】Gatsby:在 GraphQL 查询中允许不存在的字段【英文标题】:Gatsby: Allow non-existing fields in GraphQL Queries 【发布时间】:2018-03-21 12:58:34 【问题描述】:我正在使用带有 Wordpress 源插件的 Gatsby。到目前为止,一切都很好。但问题是我正在查询可能存在或不存在的字段,在这种情况下,是帖子的特色图片。 这是我的查询:
allWordpressPost(sort: fields: [date] )
edges
node
title
excerpt
slug
featured_media
better_featured_image
wordpress_id
alt_text
caption
description
media_type
post
source_url
设置特色图片时效果很好,否则会失败。 所以我的问题是:GraphQL 中有什么方法可以查询可选字段吗?为必填字段添加默认值? 我对 GraphQL 太陌生了,所以我什至不确定这是否可行。 谢谢。
【问题讨论】:
到底哪里失败了?查询还是渲染? @Scriptonomy 查询。未找到该字段时。 您可能会在localhost:8000/___graphqllocalhost:8000/___graphql使用 GraphiQL 中的模式浏览器 【参考方案1】:This article 解释了背景故事,但简而言之,您需要确保您的 WordPress 帖子中至少有 1 篇具有特色图片。那么better_featured_image
字段就会一直存在。
在 javascript 中,如果您尝试访问 allWordpressPost.edges.node.better_featured_image.wordpress_id
并且 better_featured_image
不存在,则会出现语法错误。
不知道“惨遭失败”的具体含义,不知道还有什么建议。
【讨论】:
以上是关于Gatsby:在 GraphQL 查询中允许不存在的字段的主要内容,如果未能解决你的问题,请参考以下文章
如何在 JetBrains Rider 中允许不安全的代码?
Gatsby GraphQL + WordPress 中不存在字段(但在本地工作)
如何在 Gatsby 中对 GraphQL 查询进行单元测试
Gatsby:graphql 查询中的 gatsby-source-graphql 和 gatsby-plugin-sharp