如果字段为空,如何在graphql结果中显示NULL

时间:2019-12-20 13:26:33

标签: reactjs graphql gatsby strapi

我在盖茨比的前端页面使用Strapi作为cms。

在Strapi中,我有一个内容类型PagesPages内容类型与所有其他内容类型有很多关系。

因此,我的内容类型如下:

  • 页面
  • 脚步
  • 标题

查询如下:

query MyQuery {
  allStrapiPage {
    edges {
      node {      
        footers {
          name
        }
        headers {
          name
        }
      }
    }
  }
}

我正在获得应有的所有结果。

因此,结果如下:

{
  "data": {
    "allStrapiPage": {
      "edges": [
        {
          "node": {
            "footers": [
              {
                "name": "Footer ONE"
              }
            ]
          }
        },
        {
          "node": {
            "headers": [
              {
                "name": "Header one"
              }
            ]
          }
        },
     ]
   }
  }
}

但是,如果我在上面的查询的footersheaders内容类型中没有任何记录,则会收到如下错误:

"Cannot query field \"footers\" on type \"StrapiPage\".

那不是我想要的。如何在不存在的字段上获取null?因此,如果footers内容类型为空,则预期结果如下:

{
  "data": {
    "allStrapiPage": {
      "edges": [
        {
          "node": {
            "footers": null
          }
        },
        {
          "node": {
            "headers": [
              {
                "name": "Header one"
              }
            ]
          }
        },
     ]
   }
  }
}

我该怎么做?

谢谢。

1 个答案:

答案 0 :(得分:0)

我刚刚加入,还不能对帖子发表评论,所以我将其放在答案部分。您是否检查过在架构中是否将页脚和页眉定义为可空字段?那可能是造成您的错误