React ts父子组件通信

// 父组件

import PageModal from './PageModal'; // 引入子组件

{
      title: '操作',
      valueType: 'option',
      hideInSearch: true,
      render: (_, record) => [
        
          {
             {
                // 把表格当前行的 record 通过showModal方法传递给子组件
                 cRef.current?.showModal(record);
               }}
            >详情
          }
        
      ]
}

const SysOrg: React.FC = () => {
  const cRef = useRef(null); // 创建ref
  return (
      
  );
};
export default SysOrg;
// 子组件


import {useState,forwardRef,useImperativeHandle } from 'react';
import { Modal } from 'antd';

const PageModal = forwardRef((props, ref) => { // forwardRef 会创建一个React组件,这个组件能够将其接受的 ref 属性转发到其组件树下的另一个组件中

  useImperativeHandle(ref, () => ({ // useImperativeHandle 自定义暴露给父组件的实例值
    showModal: (record:any) => { // showModal 为暴露给父组件的方法
      setIsModalOpen(true); // showModal 执行时,将 isModalOpen 设置为 true
      console.log(record,'record')
    }
  }));


  const [isModalOpen, setIsModalOpen] = useState(false);

  const handleOk = () => {
    setIsModalOpen(false);
  };

  const handleCancel = () => {
    setIsModalOpen(false);
  };


  return (
    <>
      
        

Some contents...

Some contents...

Some contents...

); }); export default PageModal;
React ts父子组件通信_第1张图片

我这里使用的组件库是:

https://procomponents.ant.design

你可能感兴趣的:(React,前端开发,前端,前端框架,React.ts)