第一次尝试盖茨比和它的一个很高兴。但是我遇到了一个奇怪的问题GraphQL:GraphQL忽略了一些(但不是全部)任意分配降价frontmatter数据
我使用的盖茨比源文件系统和盖茨比,变压器备注插件,从降价文件中提取内容。
的frontmatter数据不是在所有这些(除了title
)的相同。一些有date
字符串(博客文章),同样有一个tag
数组,有一些有gallery
对象。
现在的问题是,一些本人为地赋予frontmatter数据的GraphQL可用,有些不是。例如,如果我试图查询日期,我总是会得到类型为frontmatter_2
的“GraphQL错误未知字段date
”。而如果我查询标签,我会为那些包含一个的项目获取标签数组,而对于那些不包含这些项目的项目则获得标签数组。
这里有什么问题?我如何总能得到null
作为节点中不存在的字段的值?
这也许注意到,这种行为变化取决于我的降价文件的目录结构。如果我移动它们,一些Frontmatter字段在GraphQL中变得可用,以前不是,反之亦然。它也发生了一些代码更改通过HMR被推送后,一些字段变得可用 - 但是在我重新启动Gatsby之后,尽管没有触及代码之间,它们又一次消失了。
非常感谢您的帮助!
编辑:
失败敲我的头这一段时间后,我使出确保所有降价frontmatter具有相同类型的字段相同。
我猜
TODO链接到文档中的自动推理类型/场。
documentation的一部分就是关于这个问题。
当我有更多时间时,我想了解更多关于GraphQL及其在Gatsby中的工作原理。任何指针赞赏。
不是一个直接的答案,但检查GraphiQL与盖茨比,这是一个巨大的帮助,了解什么时候可用的数据。 http:// localhost:8000/___ graphql – chmac
感谢您的评论。我了解GraphiQL,这确实非常有帮助。然而,我的问题是关于gatsby-transformer-remark如何解析前端并决定哪些数据在节点接口中如何结束。 - 自从我问这个问题以来,有很多更新。也许它已被修复......我很快就要再试一次。 –
Gatsby根据可用数据“推断”GraphQL模式。 [这](https://github.com/gatsbyjs/gatsby/issues/3913)问题表明,有些领域,如果不存在于每个记录,可能偶尔会被丢弃。确保每个文档都在每个文档上的解决方法可能是最强大的解决方案,至少现在是这样。 – chmac