在 sanity.io 中自定义模式字段
Posted
技术标签:
【中文标题】在 sanity.io 中自定义模式字段【英文标题】:Customizing schema fields in sanity.io 【发布时间】:2020-03-29 06:08:09 【问题描述】:在 sanity studio 模式中,我使用一个字段创建了一些对象类型,依赖于其他字段。如果“所有”字段检查为真,则应隐藏或禁用“日期”字段。
但我不知道如何实现它。我试图在文档中查找示例或指南,但一无所获。 我将不胜感激您的帮助和建议。
const dateTime =
name: 'dateTime',
type: 'object',
fields: [
name: 'all',
type: 'boolean',
,
name: 'date',
type: 'date',
,
],
;
【问题讨论】:
【参考方案1】:Sanity Studio 目前没有开箱即用的方式来执行此操作。但是,它当然可以通过为该布尔字段创建custom input component 来解决。然后,自定义输入通常会根据您选择检查的任何其他字段的状态设置字段值。
别人有also requested this feature。如果您想跳进去表达您的意见并说明您需要什么,那将非常有用!
【讨论】:
乐于帮助@DaryaMoreno-Gogoleva!请记住将我的回复设置为“已回答”。这有助于其他人找到他们正在寻找的东西。 在自定义输入组件中,如何获取表单的上下文或表单中的其他字段?我想在onChange
中为所有布尔值的自定义输入组件做一些很长的事情:form.setValue(['date', 'hidden'], !!state.checked)
也许我在这里遗漏了一些东西?谢谢!
Adam,您可以访问“文档”道具中的表单上下文,通过理智传递给自定义输入组件。【参考方案2】:
条件字段已来到 Sanity.io!
https://www.sanity.io/docs/conditional-fields
显然“交换”中有一个自定义组件...
https://www.sanity.io/schemas/conditional-fields-106f447e
【讨论】:
这是个好消息以上是关于在 sanity.io 中自定义模式字段的主要内容,如果未能解决你的问题,请参考以下文章