(原始内容存档于2013-10-12). formik-json
formik-json是Formik方便地使用JSON /创建表格的包装器 用于定义元素的 Javascript 对象 .
实例
先决条件
该组件依赖于几个第三方插件来添加WYSIWYG, 选择、自动完成、验证等。 很少有人已经打包过来了 和扩展名,不需要在您的 项目.
安装
您可以使用以下步骤安装 Formik-json .
$ npm i @flipbyte/formik-json
快速启动指南
安装完成后,可以将表单添加到任何 构成部分如下:
导入窗体组件
import { Form } from '@flipbyte/formik-json';
准备表单对象
{
"id": "my-new-form",
"label": "My New Form",
"type": "container",
"renderer": "form",
"elements": {
"save": {
"type": "field",
"renderer": "button",
"name": "save",
"label": "Save",
"htmlClass": "btn-success",
"buttonType": "submit"
},
"main": {
"type": "container",
"renderer": "div",
"htmlClass": "row",
"elements": {
"title": {
"name": "attributes.0.title",
"label": "Title",
"type": "field",
"renderer": "text",
"fieldType": "text"
},
....
}
},
....
}
}
任意添加组件
<Form
schema={ /* Your form object here */ }
{ .../* Other formik props */ } />
窗体组件
窗体组件需要以下属性:
| 密钥 | 说明 |
|---|---|
| 计划 | 您的策略对象 |
| 更新时 | 更新值时调用 |
| 初始数值 | 检查 |
| Formik 属性 | 你可以添加任何一个 组件道具 |
Schema 对象
Schema 对象包含可以是2个类型之一的元素: “容器”或“场” 组件。 "集装箱"有一个"要素"键,你可以在里面 定义新容器或字段.
有下列密钥( 全部需要) 的 schema 对象 :
| 密钥 | 说明 |
|---|---|
| 编号 | 表格的标识 |
| 标签 | 表格的标题 |
| 类型 | "集装箱" |
| 渲染器 | "形式"(你可以使用其他渲染器,但如果你想使形式具有 <form /> 标记使用"形式"渲染器. ) |
| 要素 | 是用来定义容器内元素的对象 |
注意: 计划对象只能有一个容器. 你可以拥有 主对象内多个容器和字段 计划对象 .
“元素”是具有键值对的对象,其中值是另一个 对象。 值对象可以是"容器"类型,也可以是"场"类型.
每个容器或字段都需要一个可使用 "投降者":"{你的 投降者}". 您可以定义您拥有的渲染器 容器和钥匙或使用随同模块而来的钥匙.
每种容器的属性如下:
通用容器属性
| 不适用 | 外地 | 财产 | 说明 |
|---|---|---|---|
| 无 | 类型 | 字符串 | "集装箱" |
| 按钮组 | 名称 | 字符串 | 用于在“前缀Name ToElement”设定为真实时将父容器的名称预先加到子字段. |
| 可编辑网格, 标签 | 要素 | {} | 是一个可以在其内放置一个或多个字段或容器的物体. |
| 可编辑网格, 按钮组 | 前缀Name 工具元素 | 布尔 | |
| 显示时间 | 字符串 | 检查 条件 | |
| 注释 | 字符串 | 注释/容器说明 | |
| 注释分类 | 字符串 | 用于注释元素的 html 类 |
集装箱特定特性
| 集装箱 | 外地 | 财产 | 说明 |
|---|---|---|---|
| 可编辑网格 | 渲染器 | 字符串 | 可编辑网格 |
| 字段 | {} | 键值对中具有一个或多个字段定义的对象 | |
| 按钮 | {"add": "Add", "remove": "X", "duplicate": "Duplicate"} | 有三个属性,都是可选的。 这些可以是返回按钮的函数,也可以是作为按钮标签的字符串 | |
| 是对象 | 布尔 | 网格是否显示对象。 如果设置为真,则按钮(添加、去除和复制)将被禁用. | |
| 稳定 | 布尔 | 网格行是否可以被拖动和排序 | |
| 表格容器分类 | 字符串 | 将可编辑网格覆盖到 htmlClass | |
| 表格分类 | 字符串 | html 可编辑网格的分类 | |
| 数字 | 渲染器 | 字符串 | 数字 |
| 名称 | 字符串 | 用于在“前缀Name ToElement”设定为真实时将父容器的名称预先加到子字段. | |
| html 分类 | 字符串 | div 元素的 html 分类 | |
| html 标签 | 渲染器 | 字符串 | html 标签 |
| 名称 | 字符串 | 用于在“前缀Name ToElement”设定为真实时将父容器的名称预先加到子字段. | |
| 作为 | 字符串 | 要使用的 html 标签( 默认 : “ div ” ) | |
| html 分类 | 字符串 | html 标签元素 | |
| 字段集 | 渲染器 | 字符串 | 字段集 |
| 名称 | 字符串 | 用于在“前缀Name ToElement”设定为真实时将父容器的名称预先加到子字段. | |
| 标题 | 字符串 | 字段集的标签 | |
| 卡片分类 | 字符串 | html 包装容器的分类 | |
| 纸卡头类 | 字符串 | html 包装容器头的分类 | |
| 纸卡头动作分类 | 字符串 | html 容器头部有披露按钮的容器分类 | |
| 纸片组合 | 字符串 | html 容器体表 | |
| 表单 | 渲染器 | 字符串 | 表单 |
| 名称 | 字符串 | 用于在“前缀Name ToElement”设定为真实时将父容器的名称预先加到子字段. | |
| html 分类 | 字符串 | 任何字符 | |
| 选项卡 | 渲染器 | 字符串 | 选项卡 |
| 名称 | 字符串 | 用于在“前缀Name ToElement”设定为真实时将父容器的名称预先加到子字段. | |
| 选项卡 | {} | 对象 | |
| 卡片分类 | 字符串 | 与字段集相同 | |
| 行分类 | 字符串 | 以 html 分类 显示行 | |
| 选项卡列表 | 字符串 | html 标签列表的分类 | |
| 选项卡列表项目分类 | 字符串 | html 标签列表项目分类 | |
| 选项卡 | 字符串 | html 标签内容容器分类 | |
| 选项卡 | 字符串 | html 标签容器分类 | |
| 内容 | 字符串 | html 包装标签内容容器的分类 | |
| 选项卡 | 字符串 | html 活动标签的分类 | |
| 选项卡 | 字符串 | html 单标签面板的分类 | |
| 按钮组 | 渲染器 | 字符串 | 按钮组 |
| 要素 | {} | 这些元素只能是类型: 有渲染器的"场":"按钮". |
以下是每种字段的属性
常见字段属性
| 外地 | 类型 | 财产 | 说明 | |
|---|---|---|---|---|
| 名称 | 字符串 | html 字段名称属性 | ||
| 标签 | 字符串 | 字段的标签 | ||
| 类型 | 字符串 | "战地" | ||
| 标签分类 | 字符串 | 标签 html 元素的 html 类 | ||
| 组分类 | 字符串 | 用于覆盖窗体字段的 html 类 | ||
| 验证 | 字符串 | 检查 yup-schema (法语) | ||
| 显示时间 | 字符串 | 检查 条件 | ||
| 启用时 | 字符串 | 检查 条件 | ||
| 字段分类 | 字符串 | html 主 html/3- 第 阵型字段的 html 类 | ||
| 注释 | 字符串 | 注释/ 字段以下的说明 | ||
| 注释A | 字符串 | 定义用于包装注释的 HTML 标记。 (默认 : (中文(简体) ) | ||
| 注释分类 | 字符串 | 用于注释元素的 html 类 | ||
| 模板 | 反应组件 | 字符串 | 定义字段的自定义模板( 请检查 src/Template/Default.js)或使用 registerTemplate 然后将字符串密钥传递到这里 | |
| 错误 | 字符串 | 定义用于包装错误的 HTML 标记。 (默认 : (中文(简体) ) | ||
| 错误分类 | 字符串 | 错误元素的 html 类 |
字段特定属性
| 外地 | 类型 | 财产 | 说明 |
|---|---|---|---|
| 复选框 | 渲染器 | 字符串 | 复选框 |
| 名称 | 字符串 | html 字段名称属性 | |
| 标签 | 字符串 | 字段的标签 | |
| 类型 | 字符串 | "战地" | |
| 属性 | {} | 是一个可以持有其它 html 字段相关属性(如果有) 的对象。 只使用没有使用任何其他密钥定义的密钥 。 例如:名称已经拥有自己的密钥,因此属性对象内的"名"密钥将无所作为. | |
| 选项 | 阵列 | 带有“ 值” 和“ 标签” 键的天体阵列 | |
| 代码编辑器 | 渲染器 | 字符串 | 代码编辑器 |
| 名称 | 字符串 | html 字段名称属性 | |
| 标签 | 字符串 | 字段的标签 | |
| 选项 | {} | ||
| 默认值 | 字符串 | 默认字段值( 未测试) | |
| 属性 | {} | 是一个可以持有其它 html 字段相关属性(如果有) 的对象。 只使用没有使用任何其他密钥定义的密钥 。 例如:名称已经拥有自己的密钥,因此属性对象内的"名"密钥将无所作为. | |
| 电台 | 渲染器 | 字符串 | 电台 |
| 名称 | 字符串 | html 字段名称属性 | |
| 标签 | 字符串 | 字段的标签 | |
| 选项 | {} | ||
| 属性 | {} | 是一个可以持有其它 html 字段相关属性(如果有) 的对象。 只使用没有使用任何其他密钥定义的密钥 。 例如:名称已经拥有自己的密钥,因此属性对象内的"名"密钥将无所作为. | |
| 反应 - 选择 | 渲染器 | 字符串 | 反应 - 选择 |
| 名称 | 字符串 | html 字段名称属性 | |
| 标签 | 字符串 | 字段的标签 | |
| 选项 | {} | 带有值和标签密钥的对象数组。 示例 [{"label": "Item 1", "value": "value-1"}] | |
| 默认值 | 字符串 | 默认字段值( 未测试) | |
| 复数 | 布尔 | 是否为 mult 选择 | |
| 可打开 | 布尔 | 在选中位置上显示一个清晰的选定按钮,该按钮将清除选定的选项 | |
| 已失效 | 布尔 | 设定为正则时禁用选择 | |
| 无选项 | 函数 | 参考 重现选择道具 | |
| 切换 | 渲染器 | 字符串 | 切换 |
| 文本 | 渲染器 | 字符串 | 文本 |
| 属性 | {} | 是一个可以持有其它 html 字段相关属性(如果有) 的对象。 只使用没有使用任何其他密钥定义的密钥 。 例如:名称已经拥有自己的密钥,因此属性对象内的"名"密钥将无所作为. | |
| 字段类型 | 字符串 | HTML 输入类型. 输入的值 | |
| 默认值 | 字符串 | 默认字段值( 未测试) | |
| 图标 | 字符串 | 字体优美图标类 | |
| 输入组分类 | 字符串 | html 类,用于将图标和输入元素组合在一起的潜水 | |
| 文本区域 | 渲染器 | 字符串 | 文本区域 |
| 属性 | {} | 是一个可以持有其它 html 字段相关属性(如果有) 的对象。 只使用没有使用任何其他密钥定义的密钥 。 例如:名称已经拥有自己的密钥,因此属性对象内的"名"密钥将无所作为. | |
| 行数 | 数目 | 默认显示文本区域容器的行数 | |
| 维西维格语name | 渲染器 | 字符串 | 维西维格语name |
| 属性 | {} | 是一个可以持有其它 html 字段相关属性(如果有) 的对象。 只使用没有使用任何其他密钥定义的密钥 。 例如:名称已经拥有自己的密钥,因此属性对象内的"名"密钥将无所作为. | |
| 选项 | {} | React-quill wysiwyg 选项 | |
| 行数 | 数目 | Wysiwyg 容器默认显示的行数 | |
| 文本区域分类 | 字符串 | 用于显示 wysiwyg 输入的内容的原始 html 的文本区域类别 | |
| 自动补全 | 渲染器 | 字符串 | 自动补全 |
| 属性 | {} | 是一个可以持有其它 html 字段相关属性(如果有) 的对象。 只使用没有使用任何其他密钥定义的密钥 。 例如:名称已经拥有自己的密钥,因此属性对象内的"名"密钥将无所作为. | |
| 默认值 | 字符串 | 默认字段值( 未测试) | |
| 选项 | {} | 可用选项 反应自动推荐插件 | |
| 文件上加载器 | 渲染器 | 字符串 | 文件装入器 |
| 选项 | {} | 可用选项 反应-投放区插件 | |
| 组分类 | 字符串 | 用于覆盖窗体字段的 html 类 | |
| 内文本 | 渲染器 | 字符串 | 内文本 |
| 作为 | 字符串 | 用于内文本字段的 HTML 标签 | |
| html 分类 | 字符串 | 用于标签的 HTML 类 | |
| 默认值 | 字符串 | 或用作 HTML 元素的静态值, 或在未定义时用作占位符 | |
| 按钮 | 渲染器 | 字符串 | 按钮 |
| 内容 | 字符串 | 按钮内 html |
谢谢
如有建议、意见或想法,可制定更多的 解决方案,你可以给我们写信 Flipbyte.com (英语)欢迎公关.
许可证
《麻省理工学院许可证》