Dialog Fields
一个 react-final-final-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: 'My form',
}}
onAdd={(form) => {
console.log(form.getState().values);
return Promise.resolve();
}}
fields={[
{
name: 'firstName',
type: 'text',
caption: 'First name',
tooltip: 'Description for first name field',
},
{
name: 'lastName',
type: 'text',
caption: 'LastName',
tooltip: 'Description for last name field',
},
]}
/>
);
}
在 storybook 中查看更多示例。