Group API
Group API 包含分组表单的配置(GroupSchema)和容器组件(Group),用于将表单字段分组显示。
导入
注意:
Group组件是内部组件,不从@schema-formx/react导出。如果你需要自定义分组容器,请通过components.DefaultGroup注册自定义组件,或在GroupSchema.component中指定。
Schema 格式说明
Schema FormX 支持两种 schema 格式:
FieldSchema[] 格式
直接使用字段数组,所有字段会自动包裹在一个默认分组中:
自动包裹机制:当使用 FieldSchema[] 格式时,Form 组件会自动将所有字段包裹在一个默认分组中:
说明:如果你需要为每个字段独立设置分组样式,请使用 GroupSchema[] 格式手动分组。
GroupSchema[] 格式
使用分组数组,可以显式定义多个分组:
选择建议
注意:两种格式不能混合使用,一个表单只能使用一种格式。
GroupSchema 类型
分组配置类型,用于定义分组表单的配置。
说明:
GroupSchema没有内置的label属性。如果需要显示分组标题,可以通过props传递给自定义分组容器组件,或在自定义DefaultGroup中自行处理。
key
分组的唯一标识,用于区分不同的分组。
类型:string
必填:是
示例:
使用场景:
- 分组的唯一标识
layout.groups中的索引 key- 自定义分组容器的 key 属性
fields
分组内包含的字段配置数组。
类型:FieldSchema[]
必填:是
示例:
注意事项:
- 字段的
name在整个表单中必须唯一,即使在不同的分组中 - 字段按照数组顺序渲染
component
指定分组使用的容器组件。
类型:string
必填:否
默认值:使用 components.DefaultGroup 或内置 Group 组件
示例:
组件查找顺序:
- 如果指定了
component,从components对象中查找对应名称的组件 - 如果未指定,从
components中查找DefaultGroup - 如果都未找到,使用内置
Group组件
props
传递给分组容器组件的额外属性。
类型:Record<string, unknown>
必填:否
示例:
注意事项:
className、style、layout由内部自动注入- 可以通过
props传递额外的自定义属性
Group 组件
内置的分组容器组件,用于渲染分组。
注意:
Group组件是内部组件,不从@schema-formx/react导出。如果你需要自定义分组容器,请通过components.DefaultGroup注册自定义组件,或在GroupSchema.component中指定。
属性
layout
布局配置,控制分组的样式和布局。
类型:Layout
必填:是
示例:
className
分组容器的 CSS 类名。
类型:string
必填:否
示例:
style
分组容器的内联样式。
类型:CSSProperties
必填:否
示例:
children
分组内的内容,通常是表单字段。
类型:ReactNode
必填:是
示例:
自定义分组容器
GroupProps 接口
自定义分组容器组件需要实现以下接口: