React中父组件使用子组件的方法和内容

使用React提供的ref来实现父子组件通信
类组件写法:
子组件

import React from "react";
export default class ClildCom extends React.Component {
   const triggerFunction = () => {
      alert('子组件的方法被触发')
   }
   render (){
    return <div></div>
    }
}

父组件:

import React from "react";
import ClildCom from './ClildCom';
export default class ParentCom extends React.Component {
 render () {
    const  ChildRef = React.createRef();
    return (
      <div>
        <ClildCom ref = {ChildRef} />
        <div onClick={() => {ChildRef.current.triggerFunction()}}>调用子组件方法</div>
      </div>
    );
  }

}

函数组件Hooks写法
子组件

import React, {useEffect, useImperativeHandle, forwardRef} from 'react';

function ChildCom(props, ref) {

  useImperativeHandle(ref, () => ({
    method1, // 需要暴露给父组件的方法
    method2,
  }));

  const method1 = () => {
    alert('子组件方法1')
  };

  const method2 = project => {
    alert('子组件方法2')
  };

  return (
    <div>
    <div/>
  );
}

export default forwardRef(ChildCom);

父组件:

复制代码
import React, {useRef} from 'react';
// 引用子组件
import ChildCom from './ChildCom';

function ParentCom() {
  const ref = useRef();

  return (
    <>
      <ChildCom ref={ref}/>
      <div onClick={() =>{
       ref.current.method1();
       ref.current.method2();
      }}>调用子组件方法</div>
    </>
  );
}

export default ParentCom;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值