您的当前位置:首页>全部文章>文章详情

【AntDesignPro】Ant Design Pro学习记录—ModalForm的使用(三)

CrazyPanda发表于:2024-02-20 17:04:41浏览:473次TAG:

一、 Form.useForm()的使用

之前使用表单的时候,一直在为表单赋值纠结,找了一些资料,也感觉很复杂,使用多了之后,感觉表单赋值也挺简单的。

1、 创建一个form

const [theForm] = Form.useForm();

2、 绑定表单组件

无论是ProForm、ModalForm、还是DrawerForm,都可以绑定我们的theForm,使用属性form={theForm}绑定,代码如下

<ProForm
          form={theForm}
          style={{ marginTop: 8, maxWidth: 600 }}
          name="新建信息"
          layout="vertical"
          onInit={() => {
            theForm.resetFields();
          }}
          onFinish={async (value) => {
            const success = await onFinish(value as API.ContractItem);
            if (success) {
              theForm.resetFields();
              history.goBack();
            }
          }}
        >
</ProForm>

注意:绑定theForm之后,初始化的时候一定要注意清空老数据,否则数据就会一直保存在theForm中,导致页面显示错乱。

这里我习惯在onInit方法里面,调用重置方法

theForm.resetFields();

这样每次加载都会是最新数据。

3、 表单取值和赋值

表单取值方法:

theForm.getFieldValue('name');

其中name就是各表单控件的name。

表单赋值方法:

theForm.setFieldValue('name',1);

第一个参数就是各表单控件的name,第二个参数就是要赋的值,

如果要清空控件的值,可以赋值为null。

只需要在适当的时候,使用theForm赋值即可。


二、 表单控件间的联动

之前有记录过ProFormSelect可以直接设置dependencies属性来进行联动,参见Ant Design Pro学习记录—ModalForm的使用(二)而其他组件是没有这个功能的,这时候需要用到ProDormDependency组件

<ProFormDependency name={['room_id']}>
            {({ room_id }) => {
              theForm.setFieldValue('lease_area', null);
              if (room_id > 0) {
                roomData?.map((item) => {
                  console.log(item);
                  if (room_id == item.id) {
                    theForm.setFieldValue('lease_area', item?.building_area);
                  }
                });
              }
              return (
                <ProFormText
                  name="lease_area"
                  label="租赁面积(m²)"
                  width="xl"
                  placeholder="选择房源后显示"
                  initialValue={0}
                  rules={[
                    {
                      required: true,
                      message: '请输入租赁面积',
                    },
                    {
                      pattern: /^\d{1,7}(\.\d{1,2})?$/,
                      message: '面积最大不能超过9999999.99',
                    },
                  ]}
                  fieldProps={{ autoComplete: 'off' }}
                />
              );
            }}
          </ProFormDependency>

其中,属性name对应的是关联的控件的name值,可以有多个,表示只要name里面关联的任意一个控件的值发生了变化,都会触发此组件的运行,我们可以在这里进行一些数据的判断、计算,给任意组件赋值,甚至控制组件的显示和隐藏,另外ProDormDependency是可以嵌套多层的,如果表单结构比较复杂,多个组件互相关联变化,都可以使用ProDormDependency实现。

猜你喜欢

【React】React中Typecript的使用
目录一、创建React的TypeScript项目二、使用差别1、基本使用2、Props传值的差别3、State传参三、总结一、创建React的TypeScript项目见:如何在React项目中引入TypeScript?_duansamve的博客-CSDN博客二、使用差别1、基本使用其基本使用和javascript编写React项目时差不多这是一份.tsx文件代码:可以看到和之前的.jsx使用并无太大差别import&nbsp;React,&nbsp;{&nbsp;Component&nbsp;}
发表于:2023-12-05 浏览:702 TAG:
【AntDesignPro】L7Plot地理可视化组件的使用
L7Plot介绍L7Plot 基于&nbsp;L7&nbsp;实现的开箱即用地理空间数据可视化图表库L7Plot 专注于地理可视化图表。以声明配置式的方式,降低用户使用成本;以常见地理图表分类的方式,降低用户选择成本;内部集成全国行政区域数据,降低用户使用地理数据心智;支持多图层及多图表层叠,方便用户定制复杂的业务场景;L7Plot 专注于地理数据可视化展示,不会涉及数据编辑能力。前言项目需要,使用antdesignpro做前端,并绘制可视化大屏,回执地图组件,于是使用了L7Plot。功能目的绘
发表于:2023-12-14 浏览:671 TAG:
【AntDesignPro】Ant Design Pro学习记录—DrawerForm的使用
在AntDesignPro中,ModalForm和DrawerForm是我最常用的两个表单组件,配置上,他们有很多相同的地方,也有差异的地方,相比较而言,DrawerForm我使用的更多。ModalForm&lt;ModalForm &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;title={标题} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;width={600} &nbsp;&nbsp;&amp;n
发表于:2024-05-17 浏览:468 TAG:
【React】react页面加载远程css和js
在React中,您可以使用componentDidMount生命周期方法来动态加载远程CSS和JavaScript文件。代码如下import&nbsp;React,&nbsp;{&nbsp;Component&nbsp;}&nbsp;from&nbsp;&#39;react&#39;; &nbsp; class&nbsp;DynamicResources&nbsp;extends&nbsp;Component&nbsp;{ &nbsp;&nbsp;componentDidMount()&amp;nbs
发表于:2024-05-15 浏览:273 TAG:
【AntDesignPro】AntDesignPro使用原生js,箩筐地图的使用
项目需要把高德地图替换成箩筐地图,WEB前端使用的ant design pro,高德地图有相关的react demo,而箩筐地图只有原生js,结合上一篇文章【AntDesignPro】使用高德地图设置考勤区域,把高德地图修改为箩筐地图,实现考勤范围设置。1 html使用箩筐地图参考上一篇文章【html】箩筐地图的使用,设置考勤范围,了解实现考勤范围设置需要用到的箩筐地图接口。2 ant design pro加载原生js这个是实现功能的核心,只有js正确加载上了,地图的功能才能够正常使用。结合an
发表于:2024-02-08 浏览:472 TAG:
【AntDesignPro】Ant Design Pro学习记录—播放视频和音频
在ant design pro中,使用video和audio标签播放视频和音频1、播放视频我使用ModalForm弹框显示,autoPlay设置是否自动播放,controls设置操作按钮是否显示,设置好宽度和高度即可src是配置视频文件的链接&lt;ModalForm &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;title=&quot;播放视频&quot; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;n
发表于:2024-05-17 浏览:451 TAG:
【AntDesignPro】Ant Design Pro学习记录—前后端一体化部署
目录前言一、系统配置二、ant design pro访问路径配置三、站点访问路径配置前言好长时间没记录了,使用ant design pro有一年了,期间陆续做了好几个项目,从陌生到熟练,还有好多钻研成果没记录,后续有时间陆续补上。之前几个项目一直是前后端分开部署的,需要配置两个站点域名访问,还要解决跨域session问题,这次把一体化部署记录一下。一、系统配置服务端用的LNMP,使用tp6框架,使用宝塔面板管理。tp站点先正常部署,步骤省略,见下图:配置网站目录和运行目录:&nbsp;编辑配置伪
发表于:2023-11-28 浏览:830 TAG:
【AntDesignPro】Ant Design Pro学习记录—ProTable的使用(一)
目录一、关于ProTable二、使用步骤1.新建页面2.修改接口3.接口调用4.数据显示和检索1)不同类型内容显示2)列表检索3)列表内容样式设置5.其它1)render的简单使用2)图片点击预览3)翻页总结前言因为项目需要,确定了Ant Design Pro框架来开发后台管理端,刚接触这套框架,而且配套的资料真的很少,只能基于官方demo和网上不完整的学习经验一次次尝试,终于有个像样的结果,记录一下研究学习的成果,也给需要的同学一些帮助。本次学习研究基于Ant Design Pro V5版本,
发表于:2023-11-28 浏览:836 TAG: #前端 #antd #AntDesignPro
【AntDesignPro】使用高德地图设置考勤区域
参考高德开放平台https://lbs.amap.com/api/javascript-api-v2/guide/abc/amap-react功能要求:使用AntDesignPro开发系统管理端,考勤模块需要设置APP考勤打卡区域,需要页面显示地图定位并设置考勤范围(地图上画圈),以便APP在画圈范围内打卡使用。1、 准备2、 下载react类组件代码参考官网流程,可正常加载出地图组件,下面是我的页面和组件文件组件文件3、 安装并引入AmAP Loadernpm&nbsp;i&nbsp;@ama
发表于:2023-12-14 浏览:762 TAG:
【React】 react 绘制矩形
在React中绘制矩形,可以使用HTML5的&lt;canvas&gt;元素结合React组件的生命周期方法来实现。以下是一个简单的React组件示例,用于绘制矩形:import&nbsp;React,&nbsp;{&nbsp;Component&nbsp;}&nbsp;from&nbsp;&#39;react&#39;; &nbsp; class&nbsp;Rectangle&nbsp;extends&nbsp;Component&nbsp;{ &nbsp;&nbsp;componentDid
发表于:2024-04-01 浏览:313 TAG: