react 中调用子组件方法

一、使用 `ref` 和 `forwardRef`

1. 子组件暴露方法

首先使用`forwardRef`来定义组件,使得组件可以接收`ref`。然后定义了一个`childMethod`方法,并且使用`useImperativeHandle`来将这个方法暴露给父组件。

javascript 复制代码
import { forwardRef, useImperativeHandle } from "react";

const ChildComponent = forwardRef((props, ref) => {

  const childMethod = () => {

    console.log("子组件方法被调用");

  };

  useImperativeHandle(ref, () => ({

    childMethod,

  }));

  return <div>{/* 子组件内容 */}</div>;

});

2. 父组件使用方法

父组件通过`ref`就可以访问到`childMethod`。

javascript 复制代码
import { useRef } from "react";

const ParentComponent = () => {

  const childRef = useRef();

  const handleClick = () => {

    if (childRef.current) {

      childRef.current.childMethod();

    }

  };

  return (

    <div>

      <button onClick={handleClick}>调用子组件方法</button>

      <ChildComponent ref={childRef} />

    </div>

  );

};
相关推荐
福尔摩斯张19 小时前
Axios源码深度解析:前端请求库设计精髓
c语言·开发语言·前端·数据结构·游戏·排序算法
aiguangyuan19 小时前
React 中什么是可中断更新?
javascript·react·前端开发
李牧九丶20 小时前
从零学算法1334
前端·算法
1***s63220 小时前
JavaScript微服务
javascript·微服务·devops
周周爱喝粥呀20 小时前
UI设计原则和Nielsen 的 10 条可用性原则
前端·ui
小云朵爱编程20 小时前
Vue项目Iconify的使用以及自定义图标,封装图标选择器
前端·javascript·vue.js
前端大卫20 小时前
CSS 属性值 initial、unset 和 revert 的解析
前端
shimh_凉茶21 小时前
webpack+vue2打包分析视图插件 webpack-bundle-analyzer
前端·webpack·node.js
P***253921 小时前
JavaScript部署
开发语言·前端·javascript
一只小阿乐21 小时前
react 状态管理mobx中的行为模式
前端·javascript·react.js·mobx·vue开发·react开发