在健全性中不可能使用对象类型作为引用吗?例如,这不起作用。当我去田里的时候,什么也没有出现。如果我不能做到这一点,我如何访问在其他文档下创建的indexPage对象?
export const indexPage = {
title: "Index Page",
name: "indexPage",
type: "object",
fields: [
{
title: "Subheading",
name: "subheading",
type: "array",
of: [{ type: 'block' }]
},
{
title: "Content",
name: "content",
type: "array",
of: [{ type: "block" }]
},
]
}
// in another file
export const coolPage = {
title: "Cool Page",
name: "coolPage",
type: "object",
fields: [
{
title: "Reference Index Page",
name: "refIndexPage",
type: "reference",
to: [{ type: 'indexPage' }]
}
]
}
引用只能指向其他文档;而不是文档的特定部分。因此,要实现这一点,indexPage
需要是一个文档。
我认为在您的情况下,将indexPage
建模为文档是一个可行的选择。你提到";indexPage已经在其他文档下创建的对象";。indexPage
应该是自己的文档类型,而不是在特定文档中创建indexPage
数据。任何其他文档都可以通过引用连接到它。这种方法对你来说应该非常灵活。
Sanity Studio最近添加了对";引用到位";,这使得这个工作流程变得更好。工作室现在允许您创建一个引用的文档,同时编辑引用它的文档,而无需离开编辑器。你可以在这里看到一个演示(这里不需要你做额外的工作,它由Sanity Studio自动处理(。
总之:如果您有一段数据要在多个文档之间共享,请将其建模为每个相关文档所引用的自己的文档类型。