Markdown 节点和 TMDB 节点之间的 Gatsby 映射不再起作用
我刚刚将一个项目从 V2 升级到 V4.8,Gatsby 配置中的一个简单映射似乎不再起作用。正在创建节点,但任何查询都只是在链接字段上返回“null”。这是我在 gatsby-config.js 中的映射:
mapping: {
'MarkdownRemark.frontmatter.tmdb': `TmdbAccountWatchlistMovies.tmdbId`
},
该关系看起来像是在 graphql 中创建的:
但是,查询仅对任何链接字段返回 null:
有人知道发生了什么吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
它应该放置在 gatsby-node.js 内rel="nofollow noreferrer">
createSchemaCustomization
API。@link
的指令是自定义 GraphQL 架构的首选方式,而不是直接将节点映射到gatsby-config.js
内。它增加了额外的安全性和可靠的定制层,但当然它也增加了额外的难度。在类型声明之前,需要设置外键字段的关系。如果不深入研究您的数据结构,我无法知道代码应该是什么样子,但它可能类似于:
仔细检查
tmdbAccountWatchlistMovies
以查看节点是否按原样可用或现在可用以某种方式嵌套。It should be placed inside the
gatsby-node.js
inside thecreateSchemaCustomization
API.@link
's directive is the preferred way of customizing the GraphQL schema, rather than directly mapping your node inside thegatsby-config.js
. It adds an extra security and solid customization layer but of course it also adds an extra difficulty.Before the type declaration, you need to set the relation of the foreign-key field. Without digging more into your data structure I'm not able to know how the code should look like but it may be something like:
Double-check the
tmdbAccountWatchlistMovies
to see if the node is available as is or is nested somehow.找到了——哦。这些值已从 Int 类型更改为 String 类型,因此只需将 ID 用撇号括起来即可。
Found it--doh. The values had changed from Int to String types so just needed to wrap the IDs in apostrophes.