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>

  );

};
相关推荐
clove1 分钟前
js中的数据类型,类型判断,类型转换,一篇文章全面罗列解析
javascript
hxjhnct1 分钟前
响应式布局有哪些?
前端·html·css3
LYFlied3 分钟前
【每日算法】LeetCode215. 数组中的第K个最大元素
前端·算法
怎么就重名了3 分钟前
Kivy的KV语言总结
前端·javascript·html
jqq6663 分钟前
解析ElementPlus打包源码(四、打包主题)
前端·javascript·vue.js
北辰alk4 分钟前
深入理解 React Suspense 组件:原理、使用场景与最佳实践
react.js
代码猎人5 分钟前
类数组对象是什么,如何转化为数组
前端
duanyuehuan5 分钟前
js 解构赋值
开发语言·前端·javascript
进击的野人5 分钟前
Vue3 响应式系统深度解析:从原理到实践
前端·vue.js·前端框架
南山安5 分钟前
JavaScript 性能优化:防抖和节流
javascript·面试·程序员