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>

  );

};
相关推荐
Goodbaibaibai几秒前
接口请求了两次,一次报200,一次报404
前端
qq_463408423 分钟前
React Native跨平台技术在开源鸿蒙中使用WebView来加载鸿蒙应用的网页版或通过一个WebView桥接本地代码与鸿蒙应用
javascript·算法·react native·react.js·开源·list·harmonyos
全马必破三4 分钟前
React虚拟Dom
前端·javascript·react.js
tmj014 分钟前
前端JavaScript(浏览器)与后端JavaScript(Node.js)
javascript·node.js
FAQEW5 分钟前
若依微服务版(RuoYi-Cloud)本地启动全攻略
前端·后端·微服务·若依·二开
Fantastic_sj9 分钟前
js中箭头函数的作用和特性
javascript
@菜菜_达16 分钟前
前端防范 XSS(跨站脚本攻击)
前端·xss
Rysxt_20 分钟前
Vue 3 项目核心:main.ts 文件的作用与配置详解
前端·javascript·vue.js
就叫飞六吧24 分钟前
基于spring web实现简单分片上传demo
java·前端·spring
AAA阿giao30 分钟前
拼乐高式开发:深入剖析 React 组件通信、弹窗设计与样式管理
开发语言·前端·javascript·react.js·前端框架·props·components