关于 syncfusion-react-form-renderer
用于生成、排查和扩展 Syncfusion Form Renderer 的 React 表单技能,以 JSON schema 声明字段、布局、验证、动态行为和提交操作。文档涵盖条件逻辑、表达式、依赖下拉框、远程数据及自定义模板。
主要功能
- 01JSON schema 驱动表单
- 02字段验证与条件逻辑
- 03表达式及跨字段范围约束
- 04依赖下拉框与远程数据
- 05提交操作及自定义模板
适用场景
- 01从 schema 构建 React 表单
- 02配置联动字段和级联选项
- 03扩展控件模板与表单操作
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ syncfusion/ react-ui-components-skills --skill syncfusion-react-form-renderer安装后在 Claude Code 中输入/syncfusion-react-form-renderer确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/conditions.mddata-grid-features.mddependent-dropdown.mdexpressions.mdform-actions.mdform-schema.mdgetting-started.mdmin-max-range.mdremote-data-binding-in-components.mdtemplates.mdvalidations.md详细介绍
Syncfusion React 表单渲染器
当用户需要使用 Syncfusion Form Renderer 组件生成、排查问题或扩展架构驱动的 React 表单时,请使用此技能。Form Renderer 基于单个 JSON 架构构建,用于声明字段定义、布局、验证、动态行为和提交操作。
何时使用此技能
当用户需要以下操作时,请使用此技能:
- 创建新的 React 应用并安装 Syncfusion Form Renderer 包
- 使用
properties、layout和settings定义表单 - 添加 required、pattern、minLength、maxLength 或自定义验证规则
- 根据之前的回答显示或隐藏字段
- 构建依赖下拉列表或级联选项列表
- 使用
minMaxRange根据另一个字段限制数值/日期 - 使用
expressionValue和外部引用计算值 - 处理提交、重置和自定义按钮操作
- 使用
allowMultiple和buttonsGroups定义分组按钮操作 - 使用自定义 React 模板替换内置组件
快速开始
- 安装 React 包:
npm install @syncfusion/ej2-react-form-renderer
- 导入 React 组件和架构类型:
import { FormRendererComponent, type Schema } from '@syncfusion/ej2-react-form-renderer';
- 定义架构,并使用 React 组件渲染:
import { FormRendererComponent, type Schema } from '@syncfusion/ej2-react-form-renderer';
export default function App() {
const schema: Schema = {
version: '0.1.0',
properties: {
emailAddress: {
id: 'textbox_1',
name: 'emailAddress',
type: 'string',
label: 'Email Address',
textboxType: 'email',
required: true,
widget: 'textbox'
},
submit: {
id: 'submit_1',
name: 'defaultSubmit',
type: 'button',
label: 'Submit',
buttonType: 'submit',
widget: 'button'
}
},
layout: [
{ type: 'field', propertyId: 'emailAddress' },
{ type: 'field', propertyId: 'submit' }
],
settings: { name: 'Registration Form' }
};
const onSubmit = (args: any) => {
console.log(args.data, args.isValid);
};
return <FormRendererComponent schema={schema} submit={onSubmit} />;
}
文档与导航指南
开始使用
阅读 references/getting-started.md
- Vite + React 项目设置和包安装
- CSS 主题设置
- 基本的
schema+submit示例 - 使用
npm run dev在本地运行应用
表单架构与字段模型
- 根对象结构:
version、properties、layout、settings - 所有受支持的字段组件、其数据类型以及提供的 UI 交互
- 每个字段的呈现选项,以及如何选择符合客户偏好的组件
- 面板、表格、标签页和卡片的布局示例,包括容器子项如何引用字段
- 字段 ID、名称、标签、类型和常见元数据
验证
- 内置规则,例如
required、minLength、maxLength和pattern - 使用
customValidation和valid = ...进行自定义验证 - 验证在提交时还是更改时运行
条件行为
visibleWhen、hideWhen、requiredWhen、readOnlyWhen、disabledWhen- 规则架构、嵌套的
and/or组、完整运算符列表,以及每条规则的效果 - 按组件列出的支持矩阵,展示支持或忽略的条件类型
setValueWhen和choiceBasedField配置概念
动态表达式
- 使用
expressionValue根据其他字段派生值 - 字段引用、数组索引、分组、三元语法,以及算术/比较/逻辑运算符
- 常量,包括
PI、TRUE、FALSE、NULL和Math - 聚合、数学、字符串和日期函数,包括
DATEFORMAT,以及其语法和返回类型
依赖下拉列表
阅读 references/dependent-dropdown.md
- 使用
choiceBasedField配置级联选项 primaryFieldId和choiceMapping- 缺少值时的
showAllWhenNotMapped行为
基于其他字段的范围逻辑
阅读 references/min-max-range.md
- 使用
field引用对象配置minMaxRange - 根据其他字段设置数值和日期范围约束
- 应用固定的
min/max规则与跨字段范围规则
远程数据绑定
阅读 references/remote-data-binding-in-components.md
- 为下拉列表、多选列表和复选框组字段配置远程选项源
- URL 适配器、响应
dataPath、请求标头以及动态搜索/筛选值 - 搜索、排序、筛选、跳过和获取查询配置
数据网格功能
阅读 references/data-grid-features.md
- 静态和远程网格数据源
- 列编辑、验证、自定义验证和表达式
- 由其他表单字段驱动的条件数据源
- 网格搜索、排序、筛选和分页配置
表单操作和模板
阅读 references/form-actions.md 和 references/templates.md
buttonType: 'submit'、'reset'和'button',以及分组按钮操作submit/buttonClick行为和自定义逻辑submit、change、buttonClick、failure和created事件,包括其参数和生命周期行为allowMultiple和buttonsGroups的项目标签、操作、样式、图标和禁用状态- 使用 React
customWidgetSettings,按小部件类型、字段名称或模板 ID 配置自定义小部件模板 - 所有
CustomWidgetSettingModel属性和 HTML 清理器行为 - 带有可聚焦控件、绑定值和
setFieldValue同步功能的原生模板或自定义组件模板 - 保持当前输入焦点,而不在渲染时强制自动聚焦
- 从自定义字段模板更新 Form Renderer 状态
常见模式
- 保持
name值稳定,因为它们会用作载荷键和表达式中的引用。 - 使用
layout对象在面板、表格、标签页或卡片中组织字段。 - 当控件依赖于另一个字段时,级联下拉列表优先使用
choiceBasedField,动态最小/最大限制优先使用minMaxRange。 - 将验证和条件逻辑放在其影响的字段旁边,使架构易于理解。
- 最终验证优先使用
buttonType: 'submit',需要自定义操作逻辑时使用buttonType: 'button'。
实施检查清单
构建或修复 Form Renderer 架构时,请确认:
- 每个字段都有唯一的
name和id layout引用了有效的propertyId值- 支持的小部件与字段类型匹配
- 条件字段使用有效的
field引用和运算符 - 动态表达式使用
{name}语法引用现有字段名称 - 自定义验证会将
valid设为true或字符串错误消息 - 需要提交表单时,包含提交按钮
此技能旨在帮助你根据此仓库中的文档生成可运行的 React Form Renderer 表单,而不会臆造不受支持的架构属性。
评论
支持 Markdown