Sanity CMS,使用类型 "object" 作为参考
Sanity CMS, using type "object" as reference
难道不能理智地使用对象类型作为参考吗?例如,这是行不通的。当我去现场时,什么也没有出现。如果我不能这样做,我如何访问在其他文档下创建的 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 最近添加了对“就地引用”的支持,这使得该工作流程更加完善。现在,Studio 允许您创建一个文档来引用 ,同时 您正在编辑引用它的文档,而无需离开编辑器。您可以 see a demo here(这里不需要您做额外的工作,它由 Sanity Studio 自动处理)。
总而言之:如果您想在多个文档之间共享一段数据,请将其建模为自己的文档类型,供每个相关文档引用。
难道不能理智地使用对象类型作为参考吗?例如,这是行不通的。当我去现场时,什么也没有出现。如果我不能这样做,我如何访问在其他文档下创建的 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 最近添加了对“就地引用”的支持,这使得该工作流程更加完善。现在,Studio 允许您创建一个文档来引用 ,同时 您正在编辑引用它的文档,而无需离开编辑器。您可以 see a demo here(这里不需要您做额外的工作,它由 Sanity Studio 自动处理)。
总而言之:如果您想在多个文档之间共享一段数据,请将其建模为自己的文档类型,供每个相关文档引用。