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 查询中允许不存在的字段的主要内容,如果未能解决你的问题,请参考以下文章

如何在graphql gatsby中允许可选的清晰图像?

如何在 JetBrains Rider 中允许不安全的代码?

在jetbrains骑手中允许不安全的代码?

Gatsby GraphQL + WordPress 中不存在字段(但在本地工作)

如何在 Gatsby 中对 GraphQL 查询进行单元测试

Gatsby:graphql 查询中的 gatsby-source-graphql 和 gatsby-plugin-sharp