我按照健全性文档创建了一个 internalLink 类型,并且根据关于将 internalLinks 与 graphql api 一起使用的问题说明,我将它创建为一个单独的类型,如下所示:
export default {
name: 'internalLink',
type: 'object',
title: 'Internal link',
fields: [
{
name: 'reference',
type: 'reference',
title: 'Reference',
to: [
{ type: 'helpTopic' },
// other types you may want to link to
]
}
]
}
我已将其添加 schema.js,如下所示:
import internalLink from './internalLink'
export default createSchema({
name: 'default',
types: schemaTypes.concat([
internalLink,
helpTopic,
blockContent,
figure,
slideshow,
])
})
并将其添加到注释中,如下所示:
annotations: [
{
type: 'internalLink'
}
]
当我在 Gatsby 中使用 graphiql 时,如果我不使用 resolveReferences,那么我会正确获得未解析的引用:
"markDefs": [
{
"_key": "00a07e239d3d",
"_type": "internalLink",
"reference": {
"_ref": "7c635eee-0d98-5335-a376-4101922ca4b7",
"_type": "reference"
}
}
]
但是,当我使用 时_rawBody(resolveReferences:{maxDepth:1000})
,引用没有得到解析并返回为 null:
"markDefs": [
{
"_key": "00a07e239d3d",
"_type": "internalLink",
"reference": null
}
]
这是一个错误还是我做错了什么。我尝试过阅读文档,但无法弄清楚这一点,并且示例 gatsby sanity 组合项目没有 internalLinks 示例。
我在这里先向您的帮助表示感谢。