首页 > 解决方案 > 如何修复 Gatsby GraphQL 中不存在的字段?

问题描述

我使用 Wordpress、Gatsby + GraphQL,我想建立一个博客。不幸的是,所有博客文章都需要具有所有“功能”,例如特色图片

问题是当我删除所有帖子时。所以我的博客现在是空的,但 gatsby 构建失败,因为它希望特色图像存在。同样的问题是,如果我有帖子但他们没有特色图片。如果我想成功运行 gatsby,我至少需要一篇带有特色图片的帖子。

示例 GraphQL 查询

{
allWordpressPost {
    edges {
      node {
        id
        title
        content
        featured_media {
          source_url
        }
      }
    }
  }
}

错误

GraphQLError: Cannot query field "featured_media" on type "wordpress__POST".

我很担心,因为我唯一的解决方案是用所有这些东西创建一个虚拟帖子。如果我想为我的客户创建一个博客并且他删除了这个虚拟帖子怎么办?有没有更好的办法?

我对 gatsby 没有太多经验,所以我很乐意提出建议。

谢谢

标签: wordpressreactjsgraphqlgatsbywordpress-rest-api

解决方案


我有一个类似的问题,我能够解决,但没有看到更多的代码,这只是一个猜测。当您在 Post 模板文件中呈现数据时,您可以进行“非空”检查。它可能看起来像{data.featured_media !== null ? (<img src={{ data.source_url}} /> ) : null }


推荐阅读