import { ProDescriptions, type ProDescriptionsItemProps, } from '@ant-design/pro-components'; import { type DescriptionsProps, Modal } from 'antd'; import React, { forwardRef, useCallback, useImperativeHandle, useState, } from 'react'; export interface DescriptionsFormRef { open: (data?: Record) => void; close: () => void; } interface Props { columns: ProDescriptionsItemProps, 'text'>[]; title: string; } const ModalDescriptions = forwardRef((props: Props, ref) => { const { columns, title } = props; const [visible, setVisible] = useState(false); const [data, setData] = useState([]); useImperativeHandle(ref, () => ({ open: (data: DescriptionsProps['items']) => { console.log(data); if (data) { setData(data); } setVisible(true); }, close: () => setVisible(false), })); const changeVisible = useCallback( (flag: boolean) => { setVisible(flag); }, [visible], ); return ( changeVisible(false)} footer={null} > {/* */} ); }); export default React.memo(ModalDescriptions);