1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 【React】自定义封装 ant-design 弹窗

【React】自定义封装 ant-design 弹窗

时间:2023-12-31 07:45:47

相关推荐

【React】自定义封装 ant-design 弹窗

文章目录

弹窗封装文件 :ImportModal.tsx

import React, {useState, useImperativeHandle, forwardRef } from 'react'import {Form, Modal, Select } from 'antd'type TParams = {ttl: any[] }// forwardRef : 传递refexport const ImportTTLModal = forwardRef<any>((props, ref) => {const [params, setParams] = useState<any>()const [isModalVisible, setIsModalVisible] = useState(false);// 确定事件const handleOk = () => {setIsModalVisible(false);};// 取消事件const handleCancel = () => {setIsModalVisible(false);};// useImperativeHandle:自定义 ref.currentuseImperativeHandle(ref,() => ({show:(params: TParams) => {// 保存参数setParams(params)/** 改变状态 */setIsModalVisible(true) },}),[])return (<Modaltitle='弹窗'visible={isModalVisible}onOk={handleOk} onCancel={handleCancel}><div>弹窗内容</div></Modal>)})

使用自定义弹窗

import {Button, } from 'antd'import React, {useRef, useState } from 'react'import {ImportModal } from './components/ImportModal'const Main: React.FC<any> = () => {const refImportModal = useRef<any>(null)const ttl = [7, 14, 30, 60, 90, 120, 150, 180, 270, 360, 720, -1]const showModal = () => {// 显示弹窗并传参。refImportModal.current?.show({ttl: ttl,})}return (<div><Button onClick= {showModal } >弹出弹窗< /Button>< ImportModal ref = {refImportModal } /></div>)}export default Main

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。