Dialog Fields
一个 react-final-form 包装器,提供了一些有用的高级组件来构建表单。
简短描述
DFDialog
组件旨在简化表单的创建,它内部使用了 react-final-form
。
它支持几种预定义的字段类型,但用户可以通过 registerDialogControl
注册新的字段类型来扩展它。
控件
- 基础控件
plain
- 静态文本text
- 可编辑文本multi-text
- 用户定义的字符串数组checkbox
- 复选框tumbler
- 开关radio
- 单选按钮editable-list
- 可移除字符串列表multi-editable-list
- 可移除字符串的多选列表text area
- 文本区域select
- 选择框block
- 允许添加 ReactNode
- 自定义控件注册
特性
安装
$ npm install @gravity-ui/dialog-fields
# 如果您尚未安装 react/react-dom,请安装所需版本
$ npm install @gravity-ui/dialog-fields react@18 react-dom@18
根据您的包管理器,您可能需要手动安装 peerDependencies
。
用法
import {DFDialog, FormApi} from '@gravity-ui/dialog-fields';
interface FormValues {
firstName: string;
lastName: string;
}
function MyForm() {
return (
<DFDialog<FormValues>
visible={true}
headerProps={{
title: '我的表单',
}}
onAdd={(form) => {
console.log(form.getState().values);
return Promise.resolve();
}}
fields={[
{
name: 'firstName',
type: 'text',
caption: '名字',
tooltip: '名字字段的描述',
},
{
name: 'lastName',
type: 'text',
caption: '姓氏',
tooltip: '姓氏字段的描述',
},
]}
/>
);
}
更多示例请参见 storybook。