我已经按照sanity文档创建了一个internalLink类型,并且根据graphql api使用internalLinks的注意事项,我已经将它创建为一个单独的类型,如下所示:
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
}
]这是一个bug,还是我做错了什么。我试着浏览了文档,但无法理解这一点,而且example gatsby sanity combo项目没有internalLinks示例。
提前感谢您的帮助。
发布于 2020-03-21 02:37:43
到目前为止,批注不能接受这样的模式类型。您必须将整个模式块放在其中。有一点奇怪的限制。我认为有人已经在Sanity.io的Github repo上提交了关于这个问题的工单/功能请求。
https://stackoverflow.com/questions/60704140
复制相似问题