GatsbyJs - 如何处理来自 Contentful 插件的空 graphql 节点

Posted

技术标签:

【中文标题】GatsbyJs - 如何处理来自 Contentful 插件的空 graphql 节点【英文标题】:GatsbyJs - How to handle empty graphql node from Contentful plugin 【发布时间】:2018-05-02 13:50:28 【问题描述】:

我正在 Gatsbyjs 中构建一个站点,该站点通过 gatsby-source-contentful 插件获取信息,但我正在努力处理 graphql 方面的问题。

如果我在 Contentful 中有一个 Content 模型,其中包含一个用于覆盖默认描述的字段,例如,如果没有任何内容使用该内容,那么如果我尝试将它包含在我的查询中,graphql 会抛出错误。

有没有办法让graphql查询短路?

示例


  allContentfulPage 
    edges 
      node 
        title
        description 
           description
        
      
    
  

如果不存在带有描述的页面模型,这将中断,但只要一个页面获得描述,它就会起作用。

【问题讨论】:

【参考方案1】:

Gatsby 从 Contentful 中提取数据,然后构建一个内部“模型”来了解来自 Contenful 的数据的样子。 Contentful API 是 REST,但 Gatsby 在内部使用 GraphQL。

如果一个字段在 Contentful 上没有值,那么它将不会成为 Gatsby 中生成的 GraphQL 查询的一部分。解决方案是在您的一个记录中推送一个值。

【讨论】:

以上是关于GatsbyJs - 如何处理来自 Contentful 插件的空 graphql 节点的主要内容,如果未能解决你的问题,请参考以下文章

如何处理预检请求?

Swift Alamofire 如何处理来自循环的所有请求

如何处理来自 Presenter 的 Datagrid 列的事件?

Android/Parse-如何处理来自 ParseQuery 的多个回调

Core Data + iCloud 如何处理来自云端的数据更新

如何处理来自显示视频的网页的响应流?