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>

  );

};
相关推荐
xiaobaoyu2 分钟前
img,word,excel,pdf文件在线预览
前端
lichenyang4533 分钟前
从 H5 到 HarmonyOS:我做了一个 npm + OHPM 双端发布的 ArkWeb JSBridge 框架
前端
用户84298142418103 分钟前
AI时代,JS混淆加密还有用吗?
前端·javascript
xiaobaoyu7 分钟前
如何理解前端项目中的绝对路径和相对路径
前端
xiaobaoyu11 分钟前
vue3+vite+vant4项目实战总结
前端
咖啡星人k25 分钟前
【无标题】
前端·ai·github
labixiong35 分钟前
React Compiler 用 Rust 重写了,编译提速 10 倍——手写 useMemo 的日子到头了
react.js·rust
颜进强38 分钟前
LangChain 从入门到实践:用最小案例理解 RAG 的 5 个核心抽象
前端·后端·ai编程
颜进强40 分钟前
MCP 从入门到实践:用 TypeScript 实现第一个 MCP Server
前端·后端·ai编程
申君健24864182772021 小时前
MCP TypeScript SDK v2 完整升级变化说明
javascript