4.2.0 • Published 13 days ago

@hi-ui/form v4.2.0

Weekly downloads
-
License
MIT
Repository
github
Last release
13 days ago

Form 表单

用来收集数据的组件集合

何时使用

当系统需要收集、录入时

常见于调查问卷、登录、新建/编辑、设置等场景

使用示例

Props

Form

参数说明类型可选值默认值
initialValues表单默认值,只有初始化以及重置时生效;该值是不受控的,和表单中的 defaultValue 的作用相同object--
rules表单验证规则,用法参考 async-validatorobject--
labelWidthlabel 宽度,可用任意 CSS 长度单位string
labelPlacementlabel 放置的位置string'right' | 'left' | 'top''left'
placement是否横向排列string'horizontal' | 'vertical''vertical'
showColon是否显示冒号booleantrue | falsetrue
innerRef提供辅助方法的内部引用React.RefObject<FormHelpers>--

Events

名称说明类型参数返回值
onValuesChange字段值更新时触发回调事件(changedValues: object, allValues: object) => voidchangedValues: 改变的表单对象 allValues: 所有表单项对象-

SchemaForm

继承 Form API

参数说明类型可选值默认值
schema通过 schema 渲染表单SchemaItem[]--
submit继承 Form.Submit APIObject--
reset继承 Form.Reset APIObject--

FormList

参数说明类型可选值默认值
name列表名称String--
children渲染函数(fields: Field[], operation: { add, remove }) => React.ReactNode--

Form.Item

参数说明类型可选值默认值
field字段名,支持数组string(string)[]--
nameForm.List的嵌套表单中;表示该项的属性名称string---
rowForm.List 表示列表的第几行, 设置指定列表表单项时有用any---
label标签文本,默认自动添加冒号string--
labelWidthlabel 宽度,可用任意 CSS 长度单位,优先级高于 Form 设置的 labelWidthstring
required是否必填booleantrue | falsefalse
showColon是否显示冒号booleantrue | false-
rules表单验证规则,会覆盖 Form 设置的 rules,用法参考 async-validatorobject--
valuePropName子节点的值的属性,如 Switch Radio Checkbox 的是 'checked'string-'value'
contentPosition指定显示内容的位置的位置,对一些非 HiUI 表单组件进行设置string'top' | 'center' |'bottom''center'

SchemaItem

继承 Form.Item API

参数说明类型可选值默认值
component用于渲染的组件名称(现在组件名称,只限于 HiUI 中的组件名);如果传入 ReactNode 的情况下,componentProps 属性失效,同时也会默认控制组件 value 属性string | ReactNode--
componentProps组件的属性string--

Form.Submit

继承 Button API

参数说明类型可选值默认值
onClick点击提交后触发 Function(value: Object, errors: Object) => voidFunction-func.noop
fields需要校验的 field 字段,不传入的话就是默认全部校验Array--

Form.Reset

继承 Button API

参数说明类型默认值
onClick点击提交后触发 () => voidFunctionfunc.noop
fields需要重置的 field 字段,不传入的话就是默认全部重置Array-
toDefault返回默认值Booleantrue

Methods

方法名说明
validate(callback: (fields: Object, errors: Object) => void, fields:Array)对整个表单进行校验, 对应 Form.Submit中的 API
validateField(fields: []string, callback: errors => void)对指定表单字段进行校验
resetValidates(callback:() => void, fields:Array, toDefault:boolean)重置整个表单的验证,对应 Form.Reset中的 API
setFieldsValue(field: Object)设置表单的值,在异步获取的数据回显的时候,使用该方法
setListItemFieldsValue(ListItemInfo: Object)设置表单中 From.List 的指定项的值 ListItemInfo
getFieldsValue( fields: Object ) => Object获取一组字段名对应的 Values 返回为数组形式, 不传入 fields;默认返回全部信息, 不会触发表单校验
getFieldsError( fields: []string ) => Object获取一组字段名对应的错误信息,返回为数组形式, 不传入 fields;默认返回全部信息
clearValidates( fields: []string ) => void移除表单项的校验结果。传入待移除的表单项的 field 属性组成的数组,如不传则移除整个表单的校验结果
updateFormSchema( schemaData: {fileName: SchemaItem } ) => voidSchemaItem 中对应的 schema 数据更新时,请调用该方法更新

ListItemInfo

参数说明类型可选值默认值
name对应 Form.Item 中的 name,在列表项中的属性名称string--
listname需要更新的列表名称string--
row对应 Form.Item 中的 row,表示列表的第几行string--
value需要更新的值any--

Rules

更多规则

名称说明类型
enum是否匹配枚举中的值any[]
lenstring 类型时为字符串长度;number 类型时为确定数字; array 类型时为数组长度number
max必须设置 type:string 类型为字符串最大长度;number 类型时为最大值;array 类型时为数组最大长度number
message错误信息string
min必须设置 type:string 类型为字符串最小长度;number 类型时为最小值;array 类型时为数组最小长度number
pattern正则表达式匹配RegExp
required是否为必选字段boolean
transform将字段值转换成目标值后进行校验(value) => any
type类型,常见有 string |number |boolean | email。更多请参考此处string
validator自定义校验(rule,value,callback) => void
whitespace如果字段仅包含空格则校验不通过boolean

CHANGELOG

Form

参数变更类型变更内容解决的问题
propNamefeature | deprecated | update变更了什么之前是什么样子,解决什么问题
----------------
innerRefupdateref -> innerRef解决名字占用,ref 功能作为 dom 引用获取,回调方法写法支持 Promise
initialErrorsfeature-强化功能
initialTouchedfeature-强化功能
validateTriggerfeature-强化功能
validateAfterTouchedfeature-强化功能
lazyValidatefeature-强化功能
onSubmitfeature-强化功能
onResetfeature-强化功能

FormItem

参数变更类型变更内容解决的问题
propNamefeature | deprecated | update变更了什么之前是什么样子,解决什么问题
----------------
requiredupdate定义:只做展示,不做校验优化功能
valueTypefeature-强化功能
valueChangeFuncPropNamefeature-强化功能
valueDispatchTransformfeature-强化功能
valueConnectTransformfeature-强化功能
validateTriggerfeature-强化功能
renderfeature支持函数自定义渲染表单控件强化功能

FormList

参数变更类型变更内容解决的问题
propNamefeature | deprecated | update变更了什么之前是什么样子,解决什么问题
----------------
childrenfeature(fields: Field[], operation: { add, remove }) => React.ReactNode -> (fields: Field[], operation: { add, remove, swap, insertBefore, move }) => React.ReactNode强化支持

SchemeForm

SchemaItem 内部废弃,作为物料高级组件进行扩展

4.2.0

13 days ago

4.1.7

27 days ago

4.1.7-alpha.0

1 month ago

4.1.6

2 months ago

4.1.4

6 months ago

4.1.3

6 months ago

4.1.5

6 months ago

4.1.0

1 year ago

4.1.2

1 year ago

4.1.1

1 year ago

4.0.7

2 years ago

4.0.9

2 years ago

4.0.8

2 years ago

4.0.5

2 years ago

4.0.4

2 years ago

4.0.6

2 years ago

4.0.3

2 years ago

4.0.1

2 years ago

4.0.0

2 years ago

4.0.2

2 years ago

4.0.0-beta.33

2 years ago

4.0.0-beta.32

2 years ago

4.0.0-beta.35

2 years ago

4.0.0-beta.34

2 years ago

4.0.0-beta.26

2 years ago

4.0.0-beta.28

2 years ago

4.0.0-beta.27

2 years ago

4.0.0-beta.29

2 years ago

4.0.0-beta.31

2 years ago

4.0.0-beta.30

2 years ago

4.0.0-beta.25

2 years ago

4.0.0-beta.22

2 years ago

4.0.0-beta.21

2 years ago

4.0.0-beta.24

2 years ago

4.0.0-beta.23

2 years ago

4.0.0-beta.20

2 years ago

4.0.0-beta.17

2 years ago

4.0.0-beta.16

2 years ago

4.0.0-beta.19

2 years ago

4.0.0-beta.18

2 years ago

4.0.0-beta.15

2 years ago

4.0.0-beta.14

2 years ago

4.0.0-beta.11

2 years ago

4.0.0-beta.10

2 years ago

4.0.0-beta.13

2 years ago

4.0.0-beta.12

2 years ago

4.0.0-beta.9

2 years ago

4.0.0-beta.8

2 years ago

4.0.0-beta.7

2 years ago

4.0.0-beta.6

2 years ago

4.0.0-beta.5

2 years ago

4.0.0-beta.4

2 years ago

4.0.0-beta.3

2 years ago

4.0.0-beta.2

2 years ago

4.0.0-beta.1

2 years ago

4.0.0-beta.0

2 years ago

4.0.0-alpha.19

2 years ago

4.0.0-alpha.18

2 years ago

4.0.0-alpha.17

2 years ago

4.0.0-alpha.16

2 years ago

4.0.0-alpha.15

2 years ago

4.0.0-alpha.14

2 years ago

4.0.0-alpha.13

2 years ago

4.0.0-alpha.12

2 years ago

4.0.0-alpha.11

2 years ago

4.0.0-alpha.10

2 years ago

4.0.0-alpha.9

2 years ago

4.0.0-alpha.8

2 years ago

4.0.0-alpha.7

2 years ago

4.0.0-alpha.6

2 years ago

4.0.0-alpha.5

2 years ago

4.0.0-alpha.4

2 years ago

4.0.0-alpha.2

2 years ago

4.0.0-alpha.1

2 years ago