antd-form-builder 使用教程

antd-form-builder 使用教程

项目介绍

antd-form-builder 是一个基于 ant-designreact-hook-form 构建的表单生成库。它可以根据提供的有效 JSON 模式生成一个 ant 设计表单。这个库简化了表单的创建过程,使得开发者可以更专注于业务逻辑而非表单的布局和验证。

项目快速启动

安装

首先,你需要安装 antd-form-builder

npm install antd-form-builder

或者使用 yarn:

yarn add antd-form-builder

基本使用

以下是一个简单的示例,展示如何使用 antd-form-builder 创建一个表单:

import React from 'react';
import FormBuilder from 'antd-form-builder';

const App = () => {
  const formSchema = [
    {
      type: 'text',
      name: 'firstName',
      defaultValue: 'Simon',
      required: true,
      placeholder: 'First name',
      label: 'First name',
      fieldProps: {
        disabled: false
      },
      validation: {
        required: true,
        errorMessage: 'Please make sure your input is correct',
        validate: value => value.toString().startsWith('A')
      }
    },
    {
      type: 'number',
      name: 'age',
      required: true,
      defaultValue: 21,
      placeholder: 'Age',
      label: 'Age',
      fieldProps: {
        disabled: false,
        style: { width: 300 }
      },
      validation: {
        required: true,
        errorMessage: 'Please make sure your input is correct'
      }
    }
  ];

  const handleSubmit = data => {
    console.log(data);
  };

  return (
    <FormBuilder
      formSchema={formSchema}
      onSubmit={handleSubmit}
      renderFooter={handleSubmit => (
        <button className="button" onClick={handleSubmit}>
          Submit
        </button>
      )}
    />
  );
};

export default App;

应用案例和最佳实践

动态表单生成

在某些场景下,你可能需要根据用户的输入动态生成表单。antd-form-builder 支持这种动态表单生成,你可以根据用户的输入动态调整 formSchema

const DynamicForm = () => {
  const [formSchema, setFormSchema] = React.useState([
    {
      type: 'text',
      name: 'firstName',
      required: true,
      placeholder: 'First name',
      label: 'First name'
    }
  ]);

  const handleAddField = () => {
    setFormSchema([
      ...formSchema,
      {
        type: 'text',
        name: `dynamicField-${formSchema.length}`,
        required: true,
        placeholder: 'Dynamic Field',
        label: 'Dynamic Field'
      }
    ]);
  };

  return (
    <div>
      <FormBuilder formSchema={formSchema} onSubmit={console.log} />
      <button onClick={handleAddField}>Add Field</button>
    </div>
  );
};

表单验证

antd-form-builder 提供了强大的表单验证功能。你可以通过 validation 属性定义各种验证规则。

const ValidationForm = () => {
  const formSchema = [
    {
      type: 'email',
      name: 'email',
      required: true,
      placeholder: 'Email',
      label: 'Email',
      validation: {
        required: true,
        pattern: /^[^\s@]+@[^\s@]+\.[^\s@]+$/,
        errorMessage: 'Please enter a valid email address'
      }
    }
  ];

  return <FormBuilder formSchema={formSchema} onSubmit={console.log} />;
};

典型生态项目

antd-form-builder 可以与许多其他项目和库结合使用,以增强其功能。以下是一些典型的生态项目:

  1. **ant-design

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值