2.0.1 • Published 9 months ago

solo-form v2.0.1

Weekly downloads
-
License
ISC
Repository
github
Last release
9 months ago

solo-form solo-form

solo-form一个简单实用的通过 JSONSchema 配置,依赖 ant design 实现 React 中后台 表单解决方案

它上手简单容易操作,但是可以满足我们各种复杂的表单场景需求,包含输入框,下拉选择框等多个内置组件,并且支持自定义组件接入。同时可以通过配置支持表单联动表单校验等复杂功能。

文档地址

安装

solo-form 依赖 antd 组件,实用前请先安装 4.0 版本以上的antd

npm install solo-form
yarn add solo-form
pnpm install solo-form

简单的 demo

import React from 'react';
import SoloForm, { useForm } from 'solo-form';

const schema = {
  type: 'object',
  title: '简单的 demo',
  description: '简单的 demo',
  itemProps: {
    bordered: false,
    width: '500px',
  },
  properties: {
    name: {
      label: '姓名',
      format: 'input',
      props: {
        placeholder: '请输入姓名',
        type: 'string',
      },
    },
    age: {
      label: '年龄',
      format: 'input',
      props: {
        placeholder: '请输入年龄',
        type: 'number',
      },
    },
  },
};

export default function BasicDemo(): JSX.Element {
  const form = useForm({ schema });
  return <SoloForm form={form} />;
}

组件 API

参数描述类型是否必填默认值
form使用 useForm 创建的表单实例,与 SoloForm 一对一绑定 详见 文档 useFormFormInstanceProps--
watch时间选择器字段描述 区分样式 详见 文档 表单联动object--

useFrom

useForm 用于创建表单实例,使用时需要创建实例,并传入与其对应的表单上,与 SoloForm 一对一绑定。

API

参数描述类型是否必填默认值
schema描述表单的 schema,详见 schema 规范SchemaProps--
data表单初始化的值Record<string, any>--

useForm 实例返回值

参数描述类型
setSchema更新 schema 字段 更新 form 组件结构(param: SchemaProps | Record<string, UpdateSchemaBaseProps>) => void
setData外部手动修改 formData,用于已填写的表单的数据回填(param: Record<string, any>) => void
setDataByKey外部通过 key 修改指定单个 field 的数据(key: string, param: any) => void
getData获取表单内部维护的数据 formData 所有字段() => Record<string, any>
getDataByKey通过 key 获取表单内指定单个 field 的字段(key: string) => Record<string, any>
clearData清空表单内部维护的数据 formData 所有字段() => void
validateFields触发表单检验 keys 需要校验的字段,不传则校验全部字段(keys: string[]) => Promise<{ validate: boolean; data: Record<string, any> }>

查看更多示例

2.0.1

9 months ago

1.1.0

1 year ago

1.0.2

2 years ago

1.0.0

2 years ago

1.0.1

2 years ago