【AntDesignPro】Ant Design Pro学习记录—ModalForm的使用(三)
CrazyPanda发表于:2024-02-20 17:04:41浏览:465次
一、 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 绘制矩形
- 在React中绘制矩形,可以使用HTML5的<canvas>元素结合React组件的生命周期方法来实现。以下是一个简单的React组件示例,用于绘制矩形:import React, { Component } from 'react'; class Rectangle extends Component { componentDid
- 【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版本,
- 【AntDesignPro】Ant Design Pro学习记录—ModalForm的使用(四)
- 一、 ModalForm自定义footer按钮参考官网,Modal弹框是可以自定义按钮的,原想着ModalForm的modalprops可以设置自定义footer,结果设置一直不生效,最终还是使用Modal嵌套了ProForm实现了功能,在此记录一下。ant design pro使用的V5版本。1、Modal自定义footer参考官网https://ant-design.antgroup.com/components/modal-cn?from=msidevs.net#components-mo
- 【React】如何在 React 类中声明常量?
- 使用 react 开发应用程序时,有必要声明常量来存储在组件或应用程序的整个生命周期中保持不变的值。常量可以帮助提高代码可读性,提供管理共享值的中心位置,并增强可维护性。在本文中,我们将探讨如何在 react 类组件中声明常量。导入 React首先,我们假设您已经设置了 React 环境并且有一个可供使用的类组件。在声明常量之前,请确保您已导入必要的库。这包括导入 React,它是在 React 中构建用户界面的核心库。import React from '
- 【AntDesignPro】Ant Design Pro学习记录—ProTable的使用(二)
- 目录一、列表检索初始值设置二、字段缩略显示一、列表检索初始值设置使用initialValue属性,配置列表检索的初始值const columns: ProColumns<API.RoomItem>[] = [ { title: '名称', &nb
- 【AntDesignPro】使用高德地图设置考勤区域
- 参考高德开放平台https://lbs.amap.com/api/javascript-api-v2/guide/abc/amap-react功能要求:使用AntDesignPro开发系统管理端,考勤模块需要设置APP考勤打卡区域,需要页面显示地图定位并设置考勤范围(地图上画圈),以便APP在画圈范围内打卡使用。1、 准备2、 下载react类组件代码参考官网流程,可正常加载出地图组件,下面是我的页面和组件文件组件文件3、 安装并引入AmAP Loadernpm i @ama
- 【AntDesignPro】Ant Design Pro学习记录—ProTable的使用(三)
- 一、 自定义检索条件部分列表页需要做一些简单的数据汇总统计,并能够跟随检索条件自动变化,protable自带的功能没有找到对应的实现方法,最后决定自己来实现这个功能。1、关闭ProTable自带检索功能search={false}2、自定义检索表单在ProTable上方加入自定义表单<Card bordered={false} style={{ marginBottom: 15 }}>
- 【React】16 个实用的 React 库
- Web开发中,经常会需要使用第三方库来提高开发效率。今天给大家分享16个非常实用的React第三方库,使用好这些库你可以更轻松、更快速的开发项目,让我们一起看看吧!1.react-hook-formReact-hook-form 是一个用于构建 Web 应用程序的表单库。它支持多种表单类型,包括输入框、下拉框、单选框、多选框等。它还提供了一些自定义选项,可以自定义表单的外观和行为。官方地址:https://react-hook-form.com/2.rechartsRecharts 是一个用于构
- 【AntDesignPro】Ant Design Pro学习记录—ModalForm的使用(一)
- 目录前言一、ModalForm销毁二、ModalForm编辑赋值三、ProFormUploadButton赋值四、其它总结前言使用了AntDesignPro,仿照TableList创建了自己的列表,列表添加编辑确成了困扰,添加编辑使用了ModalForm,有两个问题,一个使用后,页面数据无法清除,再点弹框还是原来的数据,第二个编辑的时候,初始数据赋值问题。AntDesignPro版本V5,开发工具VsCode。一、ModalForm销毁参考ant design的关闭ModalForm和Modal
- 【AntDesignPro】Ant Design Pro学习记录—前后端分离跨域设置,解决跨域session不一致
- 目录前言一、为什么跨域二、跨域配置三、跨域请求session不一致前言第一次做前后端分离,也是踩了很多坑,记录一下AntDesignPro跨域解决的方式。服务器系统使用Nginx,服务端使用thinkphp6。AntDesignPro正式build放到服务器上后,提示登录成功,但一直登录不上,后来发现是跨域session不同导致的,登录的时候session和登录成功后session的id不同,导致提示登录成功,就是登录不进去的情况。一、为什么跨域不想知道为什么要跨域,只想知道怎么解决。二、跨域配
栏目分类全部>