ant design pro v5 之 ProForm自定义表单项
需求背景: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自定义表单项相关推荐
- Ant Design Pro V5 入门指南
一.安装及完整区块.运行.打包命令 API: V5版:https://beta-pro.ant.design/index-cn ProTable:https://protable.ant.design ...
- ant design pro v5去掉水印
ant design pro v5去掉水印 ant design pro v5去掉水印 ant design pro v5去掉水印 配置水印,水印是 PageContainer 的功能,layout ...
- Ant Design Pro V5删除自带的国际化
Ant Design Pro V5删除自带的国际化 最近做了一个基于Ant Design pro v5 + umi3的集团晋升系统,运行项目的时候,路由那边自定义name的时候会触发框架自带的国际化, ...
- Umi v3 Ant Design Pro v5 从零开始实战视频教程(34 个视频)
Umi v3 & Ant Design Pro v5 从零开始实战视频教程(34 个视频) Umi v3 & Ant Design Pro v5 视频教程,从零开始学习,搭建一个完整的 ...
- Ant Design Pro v5 获取动态菜单与基于角色权限管理视频教程(33 个视频)
Ant Design Pro v5 获取动态菜单与基于角色权限管理视频教程(33 个视频) 很多人问如何获取动态菜单的,所以在 antd prov 5 来讲一下角色管理的.从最基础的用户管理,角色管理 ...
- ant design pro v5 总结
Ant Design Pro v5 使用心得 相比V4,V5到底强在哪? 如何更改 title图标和加载时的页面? defaultSettings中菜单的几种模式及主题等配置 国际化 request ...
- Ant Design Pro v5 正式版从零开始实战 Refresh Token 视频教程(13 个视频)
Ant Design Pro v5 正式版从零开始实战 Refresh Token 视频教程(13 个视频) Ant Design Pro v5 正式版出来了,跟之前的版本在代码上有些细微的差异,这套 ...
- Ant Design Pro V5精讲(实践篇一):自定义登录界面、主界面
用户需求 登录界面改造成自己的 主界面的logo及产品名称改造成自己的 语言包去掉或者只留中英语言包 登录界面改造 进入pages/user/login目录找到index.tsx // 去掉语言包栏目 ...
- ant design pro vue左侧菜单自定义图标
做ant design pro vue项目的时候突然想修改左侧菜单的图标,在修改途中发现源码中提供的方法方法居然不生效(如下所示) 在src/assets/icons文件夹中下载svg图标 在src/ ...
- Ant Design Pro V5 初体验(typescript版)
官网网站 开箱即用的中台前端/设计解决方案https://pro.ant.design/zh-CNGitHub网站 GitHub - ant-design/ant-design-pro:
最新文章
- 设置网络映射后,电脑重启后自动重连
- MVC ScriptBundle自定义排序。
- 携程用的什么地图_2020什么项目最值得投资
- Parent属性也可释放子对象
- 不用L约束又不会梯度消失的GAN,了解一下?
- 153是一个非常特殊的数,它等于它的每位数字的立方和
- 聚类树状图_聚集聚类和树状图-解释
- ASP.NET MVC 实现二级域名(泛域名)
- 技术大佬:今年还学Python,傻了吧? 网友:就你敢说!
- android用户界面-事件处理
- 软件测试入门笔记(一)
- 把.Net开发环境迁移到Linux上去
- 图书管理系统(大一C语言大作业 包含主要结构体,文件操作, 如数据的修改 查询 删除等)
- 获取稳定的西刺代理IP
- ps考证是电脑改卷吗
- 凝思系统激活序列号_凝思6.0虚拟机搭建--遇到的问题
- php 微信 图片 文字 朋友圈,朋友圈实现图片+文字转发功能(必看篇)
- 专题:手把手学习硬件基础------10、常用器件
- 如何诊断SQL数据?
- Mac电脑的强大压缩工具——FastZip,加密压缩。
热门文章
- [《所遇随心》偶感小记]2012年8月28日
- java close 方法_Java PushbackReader close()方法与示例
- 专访微软梁念坚:任职两年给自己打70分
- Day20(lambda、stream、微服务、大数据、nginx)
- bae 3.0 mysql_应用引擎BAE3.0介绍及百度BAE3.0支持并发多少
- 脚本之家电子书下载:https://www.jb51.net/books/
- 支付公司如何赚钱?支付网关如何设计?
- 【saltstack】认证失败,无法生成minion_master.pub问题处理总结
- 如何修改静态 IP 地址和动态 IP 地址
- 信息服务器在哪里打开,internet信息服务(lls)管理器在哪里打开