react函数式组件:父组件调用子组件方法

父组件向子组件传入ref

import { useRef } from 'react';
import ChildrenModal from './ChildrenModal';

const parent = () => {
  const childrenRef = useRef(null);
  return (
    <>
      <ChildrenModal ref={childrenRef} />
    </>
  );
};

export default parent;

子组件为ref绑定方法

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

export default forwardRef((props, ref) => {
  const [isModalVisible, setIsModalVisible] = useState(false);
  const showModal = () => {
    setIsModalVisible(true);
  };
  useImperativeHandle(ref, () => ({
    showModal,
  }));

  return (
    <Modal
      title="Basic Modal"
      visible={isModalVisible}
      onCancel={() => {
        setIsModalVisible(false);
      }}
    >
      <p>Some contents...</p>
    </Modal>
  );
});

父组件调用ref上的方法

import { useRef } from 'react';
import { Button } from 'antd';
import ChildrenModal from './ChildrenModal';

const parent = () => {
  const childrenRef = useRef(null);
  return (
    <>
      <Button
        type="link"
        onClick={() => {
          childrenRef.current.showModal();
        }}
      >
        点击显示modal
      </Button>

      <ChildrenModal ref={childrenRef} />
    </>
  );
};

export default parent;
posted @   ฅ˙-˙ฅ  阅读(1244)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示