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

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

CrazyPanda发表于:2024-02-20 17:27:07浏览:362次TAG:

一、 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-modal-demo-footer

在footer属性中,直接写上自己想要的按钮就可以。

<Modal 
      title="退租审核" 
      width={600} 
      open={closeModalVisible} 
      destroyOnClose={true}
      maskClosable={false}
      bodyStyle={{ maxHeight: 500, overflowY: 'auto' }}
      onCancel={() => {
        setCloseModalVisible(false);
      }}
      footer={[
        <Button key="forbid" type="primary" onClick={() => {
          Modal.confirm({
            title: '删除',
            content: '确定要驳回该退租申请吗?',
            okText: '确认',
            cancelText: '取消',
            onOk: async () => {
              const success = await reject({ refund_id:currentRow?.id });
              if (success) {
                setCloseModalVisible(false);
                if (actionRef.current) {
                  actionRef.current.reload();
                }
              }
            },
          });
        }}>驳回</Button>,
        <Button key="confirm" type="primary" style={{backgroundColor:'#0066ff',borderColor:'#0066ff'}} onClick={() => {
          theForm.submit();
        }}>确定</Button>,
      ]}></Modal>

2、 在Modal中前五ProForm

<ProForm form={theForm} submitter={false} 
        onInit={() => {
          theForm.resetFields();
        }}
        onFinish={async (value) => {
          console.log(123);
          const success = await contract_close(value);
          if (success) {
            setCloseModalVisible(false);
            if (actionRef.current) {
              actionRef.current.reload();
            }
          }
        }}>
        <ProFormText name="contract_id" hidden={true} initialValue={currentRow?.contract_id} />
        <ProFormText name="refund_id" hidden={true} initialValue={currentRow?.id} />
        <ProFormText
          name="start_at"
          label="起租日期"
          width="xl"
          disabled={true}
          initialValue={currentRow?.start_at}
        />
        <ProFormText
          name="end_at"
          label="到租日期"
          width="xl"
          disabled={true}
          initialValue={currentRow?.end_at}
        />
        <ProFormText
          name="close_at"
          label="退租日期"
          width="xl"
          disabled
          placeholder="请选择退租日期"
          initialValue={currentRow?.close_at}
          />
</ProForm>

ProForm自带的有提交按钮,我满把他去掉,设置submitter={false},表单的按钮就不再显示了

3、 自定义按钮关联表单操作

我们隐藏了表单自己的按钮,现在需要把我们自定义的按钮关联上表单的操作,表单的操作主要由两个,一个是提交,一个是重置,

我们给表单绑定自定义的form,在点击自定义的确定按钮时,触发表单的提交操作,使用theForm.submit()即可。

<Button key="confirm" type="primary" style={{backgroundColor:'#0066ff',borderColor:'#0066ff'}} onClick={() => {
          theForm.submit();
        }}>确定</Button>

然后就会调用ProForm的onFinish方法,来实现表单的提交,

重置操作同样,使用theForm.reset(),即可触发表单的onReset方法,我这里没有设置重置方法,大家可根据自己需要进行设置。

猜你喜欢

【React】react面试题
React面试题文章目录React面试题一、react特性***React与Vue的区别*******1. Jsx的使用规范*******1.说说对 React 的理解?有哪些特性?DOM2.说说 Real DOM 和 Virtual DOM 的区别?优缺点?*******说说React中的虚拟dom?在虚拟dom计算的时候diff和key之间有什么关系*******3.说说React Jsx转换成真实DOM过程?4.说说你第mvc和mvvm的理解5.说说react中引入css的方式有哪几种?区
发表于:2023-12-05 浏览:1418 TAG:
【AntDesignPro】Ant Design Pro学习记录—ModalForm的使用(一)
目录前言一、ModalForm销毁二、ModalForm编辑赋值三、ProFormUploadButton赋值四、其它总结前言使用了AntDesignPro,仿照TableList创建了自己的列表,列表添加编辑确成了困扰,添加编辑使用了ModalForm,有两个问题,一个使用后,页面数据无法清除,再点弹框还是原来的数据,第二个编辑的时候,初始数据赋值问题。AntDesignPro版本V5,开发工具VsCode。一、ModalForm销毁参考ant design的关闭ModalForm和Modal
发表于:2023-11-28 浏览:642 TAG:
【React】如何在 React 类中声明常量?
使用 react 开发应用程序时,有必要声明常量来存储在组件或应用程序的整个生命周期中保持不变的值。常量可以帮助提高代码可读性,提供管理共享值的中心位置,并增强可维护性。在本文中,我们将探讨如何在 react 类组件中声明常量。导入 React首先,我们假设您已经设置了 React 环境并且有一个可供使用的类组件。在声明常量之前,请确保您已导入必要的库。这包括导入 React,它是在 React 中构建用户界面的核心库。import&nbsp;React&nbsp;from&nbsp;&#39;
发表于:2024-04-16 浏览:302 TAG:
【AntDesignPro】Ant Design Pro学习记录—前后端一体化部署
目录前言一、系统配置二、ant design pro访问路径配置三、站点访问路径配置前言好长时间没记录了,使用ant design pro有一年了,期间陆续做了好几个项目,从陌生到熟练,还有好多钻研成果没记录,后续有时间陆续补上。之前几个项目一直是前后端分开部署的,需要配置两个站点域名访问,还要解决跨域session问题,这次把一体化部署记录一下。一、系统配置服务端用的LNMP,使用tp6框架,使用宝塔面板管理。tp站点先正常部署,步骤省略,见下图:配置网站目录和运行目录:&nbsp;编辑配置伪
发表于:2023-11-28 浏览:830 TAG:
【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】Ant Design Pro学习记录—ProTable的使用(二)
目录一、列表检索初始值设置二、字段缩略显示一、列表检索初始值设置使用initialValue属性,配置列表检索的初始值const&nbsp;columns:&nbsp;ProColumns&lt;API.RoomItem&gt;[]&nbsp;=&nbsp;[ &nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;title:&nbsp;&#39;名称&#39;,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;nb
发表于:2023-11-28 浏览:709 TAG:
【React】16 个实用的 React 库
Web开发中,经常会需要使用第三方库来提高开发效率。今天给大家分享16个非常实用的React第三方库,使用好这些库你可以更轻松、更快速的开发项目,让我们一起看看吧!1.react-hook-formReact-hook-form 是一个用于构建 Web 应用程序的表单库。它支持多种表单类型,包括输入框、下拉框、单选框、多选框等。它还提供了一些自定义选项,可以自定义表单的外观和行为。官方地址:https://react-hook-form.com/2.rechartsRecharts 是一个用于构
发表于:2024-04-01 浏览:303 TAG:
【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
发表于:2024-02-20 浏览:363 TAG:
【AntDesignPro】Ant Design Pro学习记录—前后端分离跨域设置,解决跨域session不一致
目录前言一、为什么跨域二、跨域配置三、跨域请求session不一致前言第一次做前后端分离,也是踩了很多坑,记录一下AntDesignPro跨域解决的方式。服务器系统使用Nginx,服务端使用thinkphp6。AntDesignPro正式build放到服务器上后,提示登录成功,但一直登录不上,后来发现是跨域session不同导致的,登录的时候session和登录成功后session的id不同,导致提示登录成功,就是登录不进去的情况。一、为什么跨域不想知道为什么要跨域,只想知道怎么解决。二、跨域配
发表于:2023-11-28 浏览:564 TAG:
【AntDesignPro】Ant Design Pro学习记录—ModalForm的使用(三)
一、 Form.useForm()的使用之前使用表单的时候,一直在为表单赋值纠结,找了一些资料,也感觉很复杂,使用多了之后,感觉表单赋值也挺简单的。1、 创建一个formconst&nbsp;[theForm]&nbsp;=&nbsp;Form.useForm();2、 绑定表单组件无论是ProForm、ModalForm、还是DrawerForm,都可以绑定我们的theForm,使用属性form={theForm}绑定,代码如下&lt;ProForm &nbsp;&nbsp;&nbsp;&amp;nb
发表于:2024-02-20 浏览:476 TAG: