antd modal实例方法的获取

Antd在Modal中嵌套Form并提交 Antd在Modal中嵌套Form并提交 适用版本:Antd4.0、Antd5.0 参考资料: 官方文档-表单方法调用(React.createRef) 问题描述 因为不同业务场景的原因,我们可能需要在Modal(弹窗)中创建Form(表单),但是为了美观,使用Modal footer 中的确认按钮来提交内部的Form数据。 需要的效果如下图,可以在点击Modal的确定按钮时,提交Form中的数据。 问题解决 效果图: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FN 阅读详情

父组件


import React, { useRef } from 'react'
import YaForm from './Form'
import YaModal from '@/component/Modal'
import { Button } from 'antd'
const YaLogin = () => {
	const modalRef = useRef()
	const handleShowModal = () => {
		modalRef.current.showModal()
	}
	const handleCloseModal = () => {
		modalRef.current.closeModal()
	}
	return (
		<div>
			<Button type="primary" onClick={handleShowModal}>
				点击登录弹窗
			</Button>
			<YaModal
				ref={modalRef}
				title="登录窗口"
				children={<YaForm handleCloseModal={handleCloseModal} />}
			/>
		</div>
	)
}

export default YaLogin

modal组件


import React, { useState, forwardRef, useImperativeHandle } from 'react'
import { Button, Modal } from 'antd'
const YaModal = (props, ref) => {
	const [isModalVisible, setIsModalVisible] = useState(false)
	useImperativeHandle(ref, () => {
		return {
			showModal,
			closeModal,
		}
	})
	const showModal = () => {
		setIsModalVisible(true)
	}
	const closeModal = () => {
		setIsModalVisible(false)
	}
	const handleOk = () => {
		setIsModalVisible(false)
	}

	const handleCancel = () => {
		setIsModalVisible(false)
	}
	return (
		<div>
			<Modal
				title={props.title ? props.title : '弹出窗'}
				visible={isModalVisible}
				footer={props.footer ? true : false}
				onOk={handleOk}
				onCancel={handleCancel}
			>
				{props.children}
			</Modal>
		</div>
	)
}

export default forwardRef(YaModal)

一个帮助简化 antd Modal 状态管理的工具 一个帮助简化 antd Modal 状态管理的工具。 阅读详情

相关推荐

antd.pro中使用Modal嵌套Form实现表单的验证及表单项的值获取

antd.pro是时下很流行的React集成工具,其中包含了,react的核心代码,react路由管理,react的状态管理(dva),以及umi等适应快速开发的一套完整框架解决方案。 最近接触到antd.pro,使用到Form表单的验证问题。 在前端开发中必不可少的会碰到添加和修改功能。简单的添加/修改功能会在列表页list页面中定义一个Modal,或者以组件的方式创建一个CreateForm,然后在主页面引用。不管哪种方式只要是以Modal的形式展示,那就会牵扯到需要在Modal中嵌入Form表单。

chenqk_123的专栏 1万+

Modal.xx语法糖

详见antd官方文档(好叭,也没多详细= =) 个人常用有Modal.info和Modal.confirm Modal.info默认按钮有1个,为【知道了】,点击留在当前页 Modal.confirm默认按钮有2个,为【取消】【确定】,点击取消留在当前页,点击确认执行确定按钮事件代码 需求:现在需要弹窗中只有一个按钮,点击后执行期望事件代码(不是停留在当前页)。 Modal.info({ title:'', content:'', }) Modal.confirm({ title:'modal

Thelittlewhale的博客 2501

Antd v5.8 modal.confirm 手动控制关闭

开发中经常需要使用操作提示弹窗,在 Antd 中的 Modal 组件提供了 confirm 方法,可以快速实现操作提示弹窗。本文就来介绍一下如何使用 Modal.useModal 创建弹窗,并且实现手动控制弹窗的关闭逻辑。

天问博客-专注于大前端技术 4081

Modal获取Form数据简单demo

Modal获取Form数据简单demo前言一、效果展示二、完整代码及概念总结1.完整代码2.细节分析及概念总结2.1. React.createRef()2.2. React中this指向及绑定问题bind()构造函数内绑定箭头函数2.3.Form提交时怎样与Modal的确定按钮关联footer2.4. 使用Form的validateFields()的两种写法 前言 使用react+antd+umi新建modal内嵌表单demo。 一、效果展示 完成效果如下图,点击Open Modal,弹出Modal框,

nino617的博客 3522

antd-Modal弹窗

人发图给你发个

读心悦 9472

Python 格点数据插值到站点 最邻近插值 双线性插值

python 气象数据格点数据插值到站点,最邻近插值法,双线性插值法

好记性不如烂笔头 8459

React-antd-Modal在js函数中调用时,进行操作校验和根据条件关闭modal

let md = Modal.info( { width:400, icon:null, content:content, closable:true, onOk:(e)=> { if (!newSnippet.type) .

Afterwards_的专栏 1367

开源人形机器人硬件生态:关键技术、产业链与低成本突破 | OpenLoong 社区线下分享会

本文将深入探讨人形机器人硬件平台的关键技术、产业链与核心部件以及降低成本的策略。从硬件平台的核心技术,到机器人核心零部件的详细介绍,再到产业链各环节的协同发展以及实现低成本化的创新思路,将一同剖析人形机器人迈向广泛应用所面临的挑战与机遇,展望其未来的发展趋势,为开发者和相关从业者提供一些参考与启示。

OpenLoong_的博客 2420

使用antd confirm 定义弹框关闭事件

问题: 1、confirm 使用 在使用antd的confirm确认时,需要在点击事件发生后关闭弹框。但是confirm提供的关闭只有 确定 按钮。那么就需要自定义关闭弹窗。 点击  密码修改页  之后 会打开新的tab页,所以需要弹框在点击之后也关闭。 解决: confirm提供了一个弹窗的销毁方法 const info = Modal.info({}) info.destroy(...

赵乘风_i 2万+

2025年(第十一届)全国大学生统计建模大赛论文及选题分析

基于数据驱动决策:整个研究围绕给定的洪水灾害相关数据进行深入挖掘和分析,从数据清洗、特征分析、模型建立到最终预测,每一步都以数据为基础,通过对数据的有效利用来揭示洪水灾害发生的相关规律和特征,为洪水灾害的风险评估和预测提供依据,符合数据引领未来决策的理念。实际应用导向:洪水灾害是现实中严重影响人类生命财产安全和社会经济发展的重要问题,本研究旨在实现对洪水灾害的预测,其成果可直接应用于防洪减灾工作,如洪水预警、风险评估与区划等,对实际防灾减灾工作具有重要的指导意义,体现了以数据为支撑服务实际应用的特点。

qq_52590045的博客 1万+

量化交易如何利用涨停板策略收割散户

量化交易通过算法筛选特定特征的股票,在早盘建立底仓后,利用大单拉升制造抢筹假象,吸引散户跟风买入。这种策略利用了散户的认知偏差,如锚定效应和从众心理,导致次日低开闷杀。从技术实现来看,量化策略通过控制买入量、隐藏真实意图等手段,精准执行隔日砸策略。对于短线交易者而言,理解量化资金的运作逻辑和识别危险涨停板的特征至关重要,这包括观察封板时间、盘口挂单、量价关系等多维度数据。在算法主导的市场中,散户需要升级交易工具和策略,从预测走势转向应对走势,才能避免成为量化策略的牺牲品。

weixin_33046983的博客 288

antd的Modal的确认和取消自定义按钮

antd的Modal的确认和取消自定义按钮 在modal的属性中,有一个footer的属性,表示的是弹窗底部取消,确定按钮。我们可以对footer进行设置,从而来自定义底部按钮。 1. 隐藏底部确认和取消按钮 使用Modal中的footer属性,如下: <Modal title="哈哈" visible={visible} onCancel={this.handleCancel} footer={ [] // 设置footer为空,去掉 取消 确定默认按钮 } > </Modal>

MYG_G 1万+

绝缘检测原理和绝缘电阻计算方法

绝缘检测的目的就是计算绝缘电阻,当绝缘电阻低于某个阈值,则很可能会造成电池短路、漏电,威胁人员安全

m0_56208280的博客 4万+

react中ref的理解与简单运用

react中ref的理解与简单运用

942

SAP CPI 和 PO 的区别

SAP CPI适合云集成轻量级的集成需求,并且由于其云架构,具有快速部署低维护高度可扩展的特点。SAP PO更适合本地系统集成复杂的集成场景和高度定制化的需求,并且对于已经有 SAP 基础设施的企业来说,PO 提供了更多的控制和灵活性。选择使用哪个平台通常取决于企业的技术架构、集成需求、预算以及对灵活性和控制的需求。如果企业主要使用 SAP 的本地系统,并且有复杂的集成需求,那么 SAP PO 是一个理想的选择。如果企业更多地依赖云应用,并希望简化集成操作,那么 SAP CPI 更加适合。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1873

ollama如何在自己的服务器上跑Qwen3(小白必看)

在国内下载ollama最新安装包时,使用curl -fsSL https://ollama.com/install.sh | sh命令可能会遇到网络问题导致下载进度停滞。为了解决这一问题,可以通过国内的镜像源进行下载,例如使用modelscope社区提供的最新ollama镜像仓库。具体步骤包括:首先通过pip install modelscope安装modelscope,然后使用modelscope download命令下载ollama-linux镜像,接着进入下载目录并赋予安装脚本执行权限,最后运行安装脚

Ven%的博客 756

antd的Form表单控制实例的使用

Form表单的控制实例一、业务常景:二、使用Form表单的实例来解决: 一、业务常景: 遇到一种业务场景,即一个简单的Modal框+ Form的一个组合,仔细思考了一下,和我们平时直接使用Form表单还是有一定的区别,我们通常是通过给Form表单绑定onFinish的回调函数,但是这里的业务需求是在model框上点击确定去提交表单,直接通过onFinish函数去回调是不太可行的。 二、使用Form表单的实例来解决: 打开Antd文档,发现有一个form的实例,这里说的稍稍有的绕,他的意思是你需要使用usF

weixin_44956861的博客 8103

AUTOSAR SHE 密钥更新协议

依赖内存槽的使用用例,内存槽有不同的保护协议。M2是新的计数值C_ID‘,相应的标志位F_ID',0填充第一个块,以及新的密钥K_ID'的组合的CBC算法加密的消息。例如,我要更新一个MASTER_ECU_KEY, 那么参考上表,我需要知晓Non-volatile的MASTER_ECU_KEY (即授权密文为MASTER_ECU_KEY自己的密文).内存的更新协议分为两部分,第一部分是实际内存更新到发送一个秘密且真实的key到SHE,然后第二部分为验证,即提供给后台一个key更新成功的证据。

weixin_46481662的博客 3279

改造antd的Modal组件使其可拖拽

最近几个月在做一个react的项目,项目做到了百分之八十,然后业务要求项目里面的模态框可以拖拽,呵呵,早不提,晚不提,偏偏现在提,尽管我心里骂了一万遍,可是还是只能老老实实搞啊,毕竟谁叫人家是上帝,吾等凡人只能任其宰割,不说了,说多了都是泪! 项目用的ui框架是antd-design,相信开发过react项目的都对它不陌生,几乎是react项目首选的ui库,毕竟阿里出厂,质量保证,但是坑爹的是它的...

sinat_39726996的博客 2813

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

antd Modal组件拖动功能的一种实现方式

对于一些弹窗组件,其中一个比较高的使用场景是拖拽功能。然而如antd的Modal组件、element ui 的Dialog组件等等其他UI,自带的弹窗却原生不支持拖拽功能,却是一大遗憾。下面给出一种基于draggable组件来实现拖拽效果的一种实现方法。

草率小猿的博客 3593

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

antd modal 拖动_让antd Modal变成可拖动弹窗

import React, { Component } from 'react';import ReactDom from'react-dom';import { Modal, Empty } from'antd';import'./dragable.less';exportdefaultclass DragableModal extends Component {constructor(prop...

weixin_42622428的博客 1010

antd modal 拖动_Package - antd-draggable-modal

基于Ant-design的可以拖拽的Modal基于Ant-design的可以拖拽的Modal 特性:支持弹出窗居中打开支持拖拽 title bar 实现拖拽支持多层弹窗拖拽安装:$ yarn add antd-draggable-modal用法:import React, { Component } from 'react';import { Button } from 'antd';import...

weixin_33764463的博客 949

Antd 封装Modal

Antd 封装Modal // 子组件 // Modal的visible直接设为true const { title, onClose } = this.props; <Modal title={title} visible={true} onOk={this.handleOkDraw} onCancel={onClose} maskClosable={false} > <Form> <Steps status="wait" size="small" direc

qq_37698249的博客 1467

antd modal 拖动_让Antd 的Modal 可以拖动

需求:为了提升交互体验,满足用户“不关弹窗还能看弹窗下的页面”的需求,需要弹窗可以随意拖动位置。原本antdesign的弹窗没有拖拽功能,但是为了保留原本功能样式,我们要拓展一下这个Modal组件。思路:1、首先需要两个DIV,一个是和视口一样大的drag-mask,绑定mouseMove事件和mouseUp事件,用来作为拖拽参照;另一个是和Modal一样大的drag-target,绑定mous...

weixin_34180753的博客 1186

antd modal 拖动_Antd Modal 实现拖动功能

思路:1、首先需要两个DIV,一个是和视口一样大的drag-mask,绑定mouseMove事件和mouseUp事件,用来作为拖拽参照;另一个是和Modal一样大的drag-target,绑定mouseDown事件。2、已知Modal的样式.ant-modal{position:relative;top:100px;left:0px;},可见通过更改top、left我们将可以改变Modal位置。3...

weixin_35006125的博客 2110

react antd中Modal包裹Form组件用

运用场景: 需要弹出对话框,对话框包含form表单,如何在对话框中,获取form表单中的数据库呢。 网络案例 对话框: //有问题的modal <Modal title="开通城市" visible={this.state.isShowOpenCity} onCancel={()=>{ this.setState({ isShowOpenCity:false }) }} onOk={()

zhaojikun521521的博客 3883
上一篇: useContext
下一篇: react动态表单
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值