Antd 封装Modal

本文档展示了如何使用Ant Design(Antd)库封装一个包含Steps的Modal组件,并在父组件中调用该组件。子组件通过设置Modal的`visible`属性为`true`来显示弹窗,包含`选择任务项`和`抽奖次数设置`两个步骤。父组件通过条件渲染触发子组件的显示,并提供关闭和确认操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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" direction="vertical">
			<Step title="选择任务项" description={selectTask} />
			<Step title="抽奖次数设置" description={setDrawNum} />
		</Steps>
	</Form>
</Modal>

**************************************************************
// 父组件
{addDrawVisible && (
	<AddDrawModal
		title="新增抽奖次数赠送规则"
		onClose={this.onAddDrawClose}
		onOk={this.onAddDrawOk}
	/>
)}
Ant Design 的 Modal 组件是一个用于创建弹出模态框的基础组件,它可以帮助开发者快速搭建确认框、提示信息等用户交互界面。对 `antd modal` 进行封装可以增加代码复用性和项目的可维护性。下面简单介绍如何对其进行基本的二次封装: ### 封装思路 1. **统一配置**:将一些常用的默认属性设置好,比如宽度(`width`)、是否显示遮罩层(`mask`)等; 2. **增强功能**:添加更多业务场景需要的功能点,如自定义关闭按钮图标、加载动画效果; 3. **简化API设计**:把复杂的选项隐藏起来,暴露给使用者更简洁易懂的操作方式。 假设我们要做一个简单的封装,名为 `CustomModal`, 主要是增加了自动关闭的时间参数,并且修改了取消和确定按钮的文字内容。 ```jsx import React from 'react'; import { Modal } from 'antd'; class CustomModal extends React.Component { constructor(props) { super(props); this.state = { visible: false }; } showModal = () => { this.setState({ visible: true }); // 如果有传入autoCloseTime,则开启定时器,在指定时间后关闭modal if (this.props.autoCloseTime > 0){ setTimeout(() => this.handleCancel(), this.props.autoCloseTime) } }; handleOk = e => { console.log(e); this.setState({ visible: false, }); }; handleCancel = e => { console.log(e); this.setState({ visible: false, }); }; render() { const customStyle = {...this.props.style}; return ( <div> {/* 触发展示modal的方式 */} <button onClick={this.showModal}>打开</button> <Modal title="自定义标题" style={customStyle} visible={this.state.visible} onOk={this.handleOk} onCancel={this.handleCancel} okText={"提交"} cancelText={"返回"} > <p>Some contents...</p> </Modal> </div> ); } } export default CustomModal; ``` 以上就是一个非常基础的例子,实际项目里可以根据需求继续优化这个组件。例如支持异步操作完成后的回调函数、调整样式主题等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值