mcpField
S
syncfusion-react-form-renderer

syncfusion-react-form-renderer

github.com/syncfusion其他339 次安装1 周前更新
代码仓库

关于 syncfusion-react-form-renderer

用于生成、排查和扩展 Syncfusion Form Renderer 的 React 表单技能,以 JSON schema 声明字段、布局、验证、动态行为和提交操作。文档涵盖条件逻辑、表达式、依赖下拉框、远程数据及自定义模板。

主要功能

  1. 01JSON schema 驱动表单
  2. 02字段验证与条件逻辑
  3. 03表达式及跨字段范围约束
  4. 04依赖下拉框与远程数据
  5. 05提交操作及自定义模板

适用场景

  1. 01从 schema 构建 React 表单
  2. 02配置联动字段和级联选项
  3. 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.md
data-grid-features.md
dependent-dropdown.md
expressions.md
form-actions.md
form-schema.md
getting-started.md
min-max-range.md
remote-data-binding-in-components.md
templates.md
validations.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 模板替换内置组件

快速开始

  1. 安装 React 包:
npm install @syncfusion/ej2-react-form-renderer
  1. 导入 React 组件和架构类型:
import { FormRendererComponent, type Schema } from '@syncfusion/ej2-react-form-renderer';
  1. 定义架构,并使用 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 在本地运行应用
表单架构与字段模型

阅读 references/form-schema.md

  • 根对象结构:version、properties、layout、settings
  • 所有受支持的字段组件、其数据类型以及提供的 UI 交互
  • 每个字段的呈现选项,以及如何选择符合客户偏好的组件
  • 面板、表格、标签页和卡片的布局示例,包括容器子项如何引用字段
  • 字段 ID、名称、标签、类型和常见元数据
验证

阅读 references/validations.md

  • 内置规则,例如 required、minLength、maxLength 和 pattern
  • 使用 customValidation 和 valid = ... 进行自定义验证
  • 验证在提交时还是更改时运行
条件行为

阅读 references/conditions.md

  • visibleWhen、hideWhen、requiredWhen、readOnlyWhen、disabledWhen
  • 规则架构、嵌套的 and / or 组、完整运算符列表,以及每条规则的效果
  • 按组件列出的支持矩阵,展示支持或忽略的条件类型
  • setValueWhen 和 choiceBasedField 配置概念
动态表达式

阅读 references/expressions.md

  • 使用 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