需求背景:ProForm 默认提供的表单项无法满足项目开发

解决方案:ProForm本身是在原来的Ant Design Form 的基础上增加一些语法糖和布局设置等等,那我们就看看ProForm是如何做的就知道了

了解之后得知:ProForm的表单代码是通过如下方式来创建的:

const ProFormText = (props) => {return (<ProForm.Item {...props}><Input placeholder={props.placeholder} {...props.fieldProps} /></ProForm.Item>);
};

上面代码一目了然是吧,知道如何创建的就很简单了,我们来照葫芦画瓢就行了,下面是我的代码:

import React, {useRef, useState} from 'react';
import ProForm from '@ant-design/pro-form';
import { Select,Form } from 'antd';const { Option } = Select;const children = [];
for (let i = 10; i < 36; i++) {children.push(<Option key={i.toString(36) + i}>{i.toString(36) + i}</Option>);
}
export default () => (<><ProForm.Item label="应用类型1" shouldUpdate>{(form) => {return (<ProForm.Item name="switch"><Selectmode="multiple"allowClearstyle={{ width: '100%' }}placeholder="Please select">{children}</Select></ProForm.Item>);}}</ProForm.Item></>
);

这是页面预览效果:

ok,下面来解释一下注意事项:

1: ProForm.Item也可以替换成ant 的 Form.Item,因为上面说了,ProFrom的底层就是ant的From

2: 最外层的ProForm.Item 一定要加上 shouldUpdate,这个属性是用来控制自定义表单更新的,如果不加,你的表单在初始化的时候是渲染不出来的,并且页面会报警告

Warning: [antd: Form.Item] `children` of render props only work with `shouldUpdate` or `dependencies`.

3: name 要挂到里面的ProForm.Item或者Form.Item 标签身上,如果不加页面也会报警告:

Warning: [antd: Form.Item] Do not use `name` with `children` of render props since it's not a field.

4: 关于fieldProps

每个表单项都支持 fieldProps 属性来支持设置输入组件的props,说白了fieldProps  就是设置给底层antd组件的属性,

所以我们给 ProFormText 设置的 props 其实是 Form.Item 的,fieldProps 才是包含的组件的,要切记

看最上面的示例代码即可明白

具体解释看这里,官方api有提到过:表单 Form - Ant Design

如果有其他问题,也可以留言或者私信我

以上就是这次的分享,如果有帮到你,劳驾点个赞吧~

ant design pro v5 之 ProForm自定义表单项相关推荐

  1. Ant Design Pro V5 入门指南

    一.安装及完整区块.运行.打包命令 API: V5版:https://beta-pro.ant.design/index-cn ProTable:https://protable.ant.design ...

  2. ant design pro v5去掉水印

    ant design pro v5去掉水印 ant design pro v5去掉水印 ant design pro v5去掉水印 配置水印,水印是 PageContainer 的功能,layout ...

  3. Ant Design Pro V5删除自带的国际化

    Ant Design Pro V5删除自带的国际化 最近做了一个基于Ant Design pro v5 + umi3的集团晋升系统,运行项目的时候,路由那边自定义name的时候会触发框架自带的国际化, ...

  4. Umi v3 Ant Design Pro v5 从零开始实战视频教程(34 个视频)

    Umi v3 & Ant Design Pro v5 从零开始实战视频教程(34 个视频) Umi v3 & Ant Design Pro v5 视频教程,从零开始学习,搭建一个完整的 ...

  5. Ant Design Pro v5 获取动态菜单与基于角色权限管理视频教程(33 个视频)

    Ant Design Pro v5 获取动态菜单与基于角色权限管理视频教程(33 个视频) 很多人问如何获取动态菜单的,所以在 antd prov 5 来讲一下角色管理的.从最基础的用户管理,角色管理 ...

  6. ant design pro v5 总结

    Ant Design Pro v5 使用心得 相比V4,V5到底强在哪? 如何更改 title图标和加载时的页面? defaultSettings中菜单的几种模式及主题等配置 国际化 request ...

  7. Ant Design Pro v5 正式版从零开始实战 Refresh Token 视频教程(13 个视频)

    Ant Design Pro v5 正式版从零开始实战 Refresh Token 视频教程(13 个视频) Ant Design Pro v5 正式版出来了,跟之前的版本在代码上有些细微的差异,这套 ...

  8. Ant Design Pro V5精讲(实践篇一):自定义登录界面、主界面

    用户需求 登录界面改造成自己的 主界面的logo及产品名称改造成自己的 语言包去掉或者只留中英语言包 登录界面改造 进入pages/user/login目录找到index.tsx // 去掉语言包栏目 ...

  9. ant design pro vue左侧菜单自定义图标

    做ant design pro vue项目的时候突然想修改左侧菜单的图标,在修改途中发现源码中提供的方法方法居然不生效(如下所示) 在src/assets/icons文件夹中下载svg图标 在src/ ...

  10. Ant Design Pro V5 初体验(typescript版)

    官网网站 开箱即用的中台前端/设计解决方案https://pro.ant.design/zh-CNGitHub网站 GitHub - ant-design/ant-design-pro:

最新文章

  1. 设置网络映射后,电脑重启后自动重连
  2. MVC ScriptBundle自定义排序。
  3. 携程用的什么地图_2020什么项目最值得投资
  4. Parent属性也可释放子对象
  5. 不用L约束又不会梯度消失的GAN,了解一下?
  6. 153是一个非常特殊的数,它等于它的每位数字的立方和
  7. 聚类树状图_聚集聚类和树状图-解释
  8. ASP.NET MVC 实现二级域名(泛域名)
  9. 技术大佬:今年还学Python,傻了吧? 网友:就你敢说!
  10. android用户界面-事件处理
  11. 软件测试入门笔记(一)
  12. 把.Net开发环境迁移到Linux上去
  13. 图书管理系统(大一C语言大作业 包含主要结构体,文件操作, 如数据的修改 查询 删除等)
  14. 获取稳定的西刺代理IP
  15. ps考证是电脑改卷吗
  16. 凝思系统激活序列号_凝思6.0虚拟机搭建--遇到的问题
  17. php 微信 图片 文字 朋友圈,朋友圈实现图片+文字转发功能(必看篇)
  18. 专题:手把手学习硬件基础------10、常用器件
  19. 如何诊断SQL数据?
  20. Mac电脑的强大压缩工具——FastZip,加密压缩。

热门文章

  1. [《所遇随心》偶感小记]2012年8月28日
  2. java close 方法_Java PushbackReader close()方法与示例
  3. 专访微软梁念坚:任职两年给自己打70分
  4. Day20(lambda、stream、微服务、大数据、nginx)
  5. bae 3.0 mysql_应用引擎BAE3.0介绍及百度BAE3.0支持并发多少
  6. 脚本之家电子书下载:https://www.jb51.net/books/
  7. 支付公司如何赚钱?支付网关如何设计?
  8. 【saltstack】认证失败,无法生成minion_master.pub问题处理总结
  9. 如何修改静态 IP 地址和动态 IP 地址
  10. 信息服务器在哪里打开,internet信息服务(lls)管理器在哪里打开