【问题标题】:How to fix non existent field in Gatsby GraphQL?如何修复 Gatsby GraphQL 中不存在的字段?
【发布时间】:2019-10-22 19:48:50
【问题描述】:

我使用 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 没有太多经验,所以我很乐意提出建议。

谢谢

【问题讨论】:

  • 将片段用于featured_media - 应视为可选
  • 你能给我举个例子吗?
  • 'gatsby fragment' - stackoverflow.com/a/51839893/6124657 搜索/google 并不难
  • 它不起作用。还是一样的错误。
  • 在github上打开一个问题

标签: wordpress reactjs graphql gatsby wordpress-rest-api


【解决方案1】:

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

【讨论】:

  • 不知道为什么这被否决了,但这是一种常见的方式来解决没有任何数据来自无头 WordPress CMS 到 Gatsby 前端的问题。特别是提出的问题。这样,您的客户可以在不中断构建过程的情况下发布零帖子。当他们添加新帖子时,您的组件将按预期添加它们。留下这个,因为它会帮助其他人解决这个问题,尽管投反对票。
猜你喜欢
  • 2018-03-21
  • 2019-12-05
  • 2021-10-13
  • 2020-08-24
  • 2021-06-19
  • 1970-01-01
  • 2020-09-08
  • 2020-04-20
  • 1970-01-01
相关资源
最近更新 更多