Skip to content

Form 表单

表单组件,用于数据录入、校验,支持多种布局方式。

基础用法

表单由 EFormEFormItem 组成,EFormItem 是表单项容器,用于包装各种输入组件。

查看代码

API

EForm

参数说明类型可选值默认值
children表单项列表List<Widget>
controller表单控制器EFormController
labelPosition标签位置Stringleft / top / rightleft
labelWidth标签宽度dynamicdouble / 'auto''auto'
formItemTextStyle表单项文字样式TextStyleTextStyle(fontSize: 14)
disabled是否禁用boolfalse
readOnly是否只读boolfalse
size尺寸ESizeItemsmall / medium / largesmall

EFormItem

参数说明类型可选值默认值
label标签文本String
child表单项内容Widget
textStyle标签文字样式TextStyle
labelPosition标签位置Stringleft / top / right
isRequired是否必填boolfalse
labelWidth标签宽度dynamicdouble / 'auto'
validator验证函数EFormItemValidator
labelRightChild标签右侧内容Widget

EFormController

方法说明参数返回值
valid验证表单bool
clearValidate清除验证错误void
reset重置表单void

支持的表单组件

Form 组件支持以下输入组件的自动属性注入:

  • EInput - 输入框
  • ESelect - 选择器
  • EInputNumber - 数字输入框
  • EInputTag - 标签输入框
  • ERadioGroup - 单选框组
  • EDatePicker - 日期选择器

当设置表单的 disabledreadOnlysize 属性时,这些属性会自动传递给子组件。

注意事项

  1. 每个 EForm 必须有一个唯一的 EFormController
  2. 验证函数返回 null 表示验证通过,返回字符串表示验证失败的错误信息
  3. 标签宽度设置为 'auto' 时会自动计算所有标签的最大宽度
  4. 表单的 disabledreadOnly 属性会覆盖单个表单项的设置
  5. 使用 labelRightChild 时,建议使用小尺寸的按钮或图标组件

基于 MIT 协议发布