跳到主要内容

Form 表单

表单容器——分组标题 + 行(label + 控件)+ 行间 hairline 分隔。

实时预览

下方渲染的就是 src/components/ui/Form/Form.tsx 本体,通过 react-native-web 翻译成浏览器节点。

基本信息
姓名 *
手机号 *
格式不正确
拜访设置
拜访提醒
同步给团队

视觉规范

元素规则
分组标题13px / 600 / fg-3,全大写、字符间距 1,上下 padding 12
Form Row高度 ≥ 48px,左 label + 右控件,padding 12 16
行间分隔1px hairline #EDEDED(这是 form 的例外,用 gap)
必填标记label 后带 * 红色(error-300
错误提示行下方 12px 红字

用法

import { Form, FormGroup, FormRow, Input, Switch } from '@unif/react-native-design';

<Form>
<FormGroup label="基本信息">
<FormRow label="姓名" required>
<Input value={name} onChangeText={setName} placeholder="请输入" />
</FormRow>
<FormRow label="手机号" error="格式不正确">
<Input value={phone} onChangeText={setPhone} keyboardType="phone-pad" />
</FormRow>
</FormGroup>

<FormGroup label="拜访设置">
<FormRow label="提醒">
<Switch value={remind} onChange={setRemind} />
</FormRow>
</FormGroup>
</Form>

与 Cell · List 的区别

用途选哪个
数据展示(设置项、客户列表)Cell · List — 白卡 + gap
数据录入(表单)Form — 白卡 + 行间 hairline

录入场景密度更高,hairline 分隔比 gap 更高效;展示场景反之。