在 Sanity 中订购文件

Ordering documents in Sanity

我有一组文档,我希望编辑能够选择它们出现的顺序。我一直无法找到有关此的任何信息。在 Sanity 或插件中是否有标准或内置的方式来处理这个问题?

我可以在文档中添加一个 sortOrder 字段,但编辑器必须填写数字。在列表的前面插入一个文档意味着在它之后手动递增每个文档。

我尝试创建一个单例文档,其中的字段具有 type: 'array', of: [{ type: 'reference', to: [{ type: 'myType' }] }]。这确实有效,但它似乎是一种解决方法,并不能带来良好的编辑体验。您必须创建一个新文档,然后转到此单例文档并将其添加到那里。它也似乎查询更慢。

有什么建议吗?有没有我错过的好方法?

目前,您最好的开箱即用选项是您的建议:创建一个单例,其中包含对您要订购的文档的引用数组。但正如您所指出的,这将需要在单独的上下文中手动添加新文档。这相当于笨拙的用户体验。

在池的深处,您可以创建一个 custom input component,它允许从任何可排序文档中控制顺序,但将该顺序(自动地,在幕后)持久化到一个单例中。

如果您最终采用后一种解决方案,那么如果您能分享结果就太棒了。还有其他几个人一直在寻找同一问题的解决方案。