第一次尝试盖茨比,很高兴。但是我遇到了一个奇怪的 GraphQL 问题:
我正在使用 gatsby-source-filesystem 和 gatsby-transformer-remark 插件从 markdown 文件中提取内容。
所有的frontmatter数据都不相同(除了title
)。有些有一个date
字符串(博客文章),同样有一个tag
数组,有些有一个gallery
对象。
现在的问题是,这些任意分配的 frontmatter 数据中的一些在 GraphQL 中可用,而有些则不可用。例如,如果我尝试查询日期,我总是会得到“GraphQL Error Unknown field date
on type frontmatter_2
”。而如果我查询标签,我会得到包含一个和tags: null
不包含的那些项目的标签数组。
这里有什么问题?如何始终获取null
节点中不存在的字段的值?
值得注意的是,这种行为会根据我的降价文件的目录结构而改变。如果我移动它们,GraphQL 中的一些 frontmatter 字段将变得可用,而以前不可用,反之亦然。还有一种情况是,在通过 HMR 推送一些代码更改后,一些字段变得可用 - 但在我重新启动 Gatsby 后,尽管没有触及中间的代码,它们又消失了。
非常感谢您的帮助!
编辑:
在尝试了一段时间没有成功之后,我求助于确保所有 markdown frontmatter 具有相同类型的相同字段。
我猜是
TODO 链接到关于自动推断类型/字段的文档。
部分文档是关于这个问题的。
当我有更多时间时,我想了解更多关于 GraphQL 以及它在 Gatsby 中的工作原理。任何指针表示赞赏。