SuperAPI AI 工具集

shadcn-syntax-field

通用与其它

查看项目

更新于 10-15 22:18

技能介绍

用途:在 shadcn/ui 2026 中构建表单时,当推荐使用新的 Field 原语家族,本技能说明如何组合 Field、FieldLabel、FieldDescription、FieldError 等组件。它与旧 Form 组合提供相同的标签/描述/错误接线,但不耦合 react-hook-form。

主要能力:Field 家族共十个原语(Field、FieldLabel、FieldDescription、FieldError、FieldGroup、FieldSet、FieldLegend、FieldContent、FieldSeparator、FieldTitle),是 field.tsx 的完整导出面。FieldError 接受 errors 数组,按 message 去重,单条渲染字符串、多条渲染列表,空则返回 null。Field 通过 data-invalid 属性驱动破坏性颜色令牌,orientation 支持 vertical、horizontal、responsive,其中 responsive 需 FieldGroup 祖先提供容器查询。

使用方式:新表单使用 Field 搭配 react-hook-form 的 Controller 或 TanStack Form,或独立使用;必须手动为 FieldLabel 设置 htmlFor 并与内部控件 id 匹配,Field 不自动生成 id。FieldError 应是其 Field 的直接子节点。每个与表单库组合的文件需标记 "use client"。安装命令:npx shadcn@latest add field,或 npx shadcn@latest add field form。

适用场景:新代码、TanStack Form、混合组件库、自定义标记的表单。限制:同一表单树内不得混用 Field 与 FormField;样式无效状态用 data-invalid,可访问性信号需在输入控件上另设 aria-invalid;不要传预字符串化的错误。旧代码库若已使用 Form 组合,继续沿用即可,两者文件级共存,但不要在同一字段树内混用。更完整的 API 签名、示例与反模式见相关参考文件,官方资料未提供价格或收费信息。