import React, { useCallback, useEffect, useMemo, useState } from "react"; import { A5TableType } from "@/types"; import { Radio, Table } from "antd"; import { forwardRef, useImperativeHandle } from "react"; type Props = { data: A5TableType[]; type: "部门" | "阶段"; valAc: string; ref: any; }; function A2Tab2AddTable({ data, type, valAc }: Props, ref: any) { const [value, setValue] = useState(""); useEffect(() => { if (valAc) setValue(valAc); }, [valAc]); const kongGeFu = useCallback((level: 1 | 2 | 3 | 4, name: string) => { let arr = ""; for (let i = 1; i < level; i++) { arr += " "; } return arr + name; }, []); const A2Tab2AddTableResFu = useCallback(() => { return value; }, [value]); // 可以让父组件调用子组件的方法 useImperativeHandle(ref, () => ({ A2Tab2AddTableResFu, })); const columns = useMemo(() => { return [ { width: 150, title: "单选", render: (item: A5TableType) => { if (item.children) return null; else return ( setValue(e.target.value)} > ); }, }, { title: `${type}名称`, render: (item: A5TableType) => ( ), }, ]; }, [kongGeFu, type, value]); return ( <> {data.length ? ( ) : null} ); } export default forwardRef(A2Tab2AddTable);