【React】父组件如何调用子组件的方法

打印 上一主题 下一主题

主题 899|帖子 899|积分 2697

在React中,父组件可以通过ref来调用子组件的方法。以下是一个简单的示例,展示了如安在父组件中利用ref来调用子组件的方法。
子组件
首先,在子组件中定义一个方法,并利用forwardRef将其袒露给父组件。
注意下面的代码块中,localRef相关的代码其实不需要也可以实现这个功能;
  1. import React, { forwardRef, useImperativeHandle, useRef } from 'react';
  2. const ChildComponent = forwardRef((props, ref) => {
  3.   const localRef = useRef();
  4.   useImperativeHandle(ref, () => ({
  5.    注意:这里放子组件将被父组件调用的方法
  6.     scroll: (awardName, callback) => {
  7.       console.log(
  8. `Scrolling to ${awardName}`);
  9.       // 执行滚动逻辑
  10.       if (callback) callback();
  11.     }
  12.    
  13.   }));
  14.   return (
  15.     <div ref={localRef}>
  16.       {/* 子组件内容 */}
  17.     </div>
  18.   );
  19. });
  20. export default ChildComponent;
复制代码
父组件
在父组件中,利用useRef创建一个ref,并将其传递给子组件。然后,可以通过这个ref调用子组件的方法。
  1. import React, { useRef } from 'react';
  2. import ChildComponent from './ChildComponent';
  3. const ParentComponent = () => {
  4.   const childRef = useRef();
  5.   const handleScroll = () => {
  6.     if (childRef.current) {
  7.       childRef.current.scroll('Award Name', () => {
  8.       支持回调
  9.         console.log('Scroll completed');
  10.       });
  11.     }
  12.   };
  13.   return (
  14.     <div>
  15.       <ChildComponent ref={childRef} />
  16.       <button onClick={handleScroll}>Scroll to Award</button>
  17.     </div>
  18.   );
  19. };
  20. export default ParentComponent;
复制代码
表明
子组件:利用forwardRef和useImperativeHandle将scroll方法袒露给父组件。
父组件:利用useRef创建一个ref,并将其传递给子组件。通过这个ref调用子组件的scroll方法。
这样,父组件就可以调用子组件的方法了。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

吴旭华

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表