forwardRef - React父组件控制子组件

作用:forwardRef 用于拿到父组件传入的 ref 属性,这样在父组件便能通过 ref 控制子组件。

父组件:

 import { useRef } from "react";
 import About from "./comment/About"; //引入子组件
 function App() {
   const typeRef = useRef(); 
 ​
   const bool = false;//定义一个参数
     
   const toggle = () => {
     console.log(typeRef)
   //调用 typeRef.current里面的数据
     typeRef.current.show();
     typeRef.current.close();
     console.log(typeRef.current.a);
   };
   // 回调函数
   const select = (item) => {
     console.log( item, "typeRef");
   };
   return (
     <>
       <About ref={typeRef} onSelect={select} parameter={bool}></About>
       <button onClick={toggle}>点击</button>
     </>
   );
 }
 ​
 export default App;
  • 父组件可以通过props向子组件传递参数,和方法。
  •  父组件通过 typeRef.current,调用在子组件中的方法和属性

子组件:

import React, { forwardRef } from "react";
 ​
 /**
     forwardRef渲染函数只接受两个参数:props和ref,必须要传这两个参数
 */
 const About = forwardRef((props, ref) => {
   
  //向ref.current添加属性,在父组件中调用
   ref.current = {
     show: () => {
       console.log("show");
     },
     close: () => {
       console.log("close");
     },
      a:false,
   };
   const choseType = () => {
    console.log(props);
     //调用props里的方法和参数
     props.onSelect(1);
     console.log(props.parameter);
   };
   return <div onClick={choseType}>About</div>;
 });
 ​
 export default About;
 ​

        子组件通过props接收父组件的方法和参数,进行调用

相关推荐

  1. forwardRef - React组件控制组件

    2024-01-27 09:54:02       49 阅读
  2. React组件组件传值

    2024-01-27 09:54:02       59 阅读
  3. react组件调用组件的方法

    2024-01-27 09:54:02       39 阅读
  4. 组件调用组件的方法

    2024-01-27 09:54:02       62 阅读
  5. flutter 组件调用组件方法

    2024-01-27 09:54:02       40 阅读
  6. react v-18组件调用组件的方法和数据

    2024-01-27 09:54:02       60 阅读
  7. react组件props变化的时候组件怎么监听?

    2024-01-27 09:54:02       65 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-27 09:54:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-27 09:54:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-01-27 09:54:02       82 阅读
  4. Python语言-面向对象

    2024-01-27 09:54:02       91 阅读

热门阅读

  1. 领导力风格

    2024-01-27 09:54:02       50 阅读
  2. 【LeetCode-452】用最少数量的箭引爆气球(贪心)

    2024-01-27 09:54:02       61 阅读
  3. 前端工程化之:webpack1-5(配置文件)

    2024-01-27 09:54:02       63 阅读
  4. ·模板方法模式

    2024-01-27 09:54:02       50 阅读
  5. Redis面试题34

    2024-01-27 09:54:02       49 阅读
  6. 比特币 ETF 费用战蔓延至欧洲

    2024-01-27 09:54:02       57 阅读
  7. 如何保障主机安全

    2024-01-27 09:54:02       50 阅读
  8. Ubuntu 20.04 升级到 Ubuntu 22.04

    2024-01-27 09:54:02       31 阅读
  9. 一步步安装Ruby攻略

    2024-01-27 09:54:02       56 阅读
  10. ARP安全针对欺骗攻击的解决方案

    2024-01-27 09:54:02       51 阅读
  11. Delphi 7 IdHTTP POST 中文乱码得解决

    2024-01-27 09:54:02       50 阅读
  12. wayland(xdg_wm_base) + egl + opengles2.0 绘制四边形实例

    2024-01-27 09:54:02       54 阅读
  13. 使用Minikube管理k8s集群

    2024-01-27 09:54:02       52 阅读