react v-18父组件调用子组件的方法和数据

news/2024/7/15 17:45:01 标签: javascript, 前端, react.js

版本

javascript">"react": "^18.1.0",
"react-dom": "^18.1.0",

父组件

javascript">import React, { useState, useRef, memo, useEffect } from "react";
import { useTranslation } from "react-i18next";
import { Card } from "antd";

import Childdren from './child/child';
function Dashboard() {
  let childRef:any = useRef(null);
  const handleClick = () => {
     console.log('子组件:', childRef.current)  //打印:{num: 999, add: ƒ}
    childRef.current.add() //调用
  }
  return (
        <Card style={{ minHeight: "calc(100vh - 64px)" }}>
            <Childdren ref={childRef} title={'我是父组件的数据'} num={123} fun={() => alert('传递了一个函数')} />
            
            <button onClick={handleClick}>父组件调子组件方法</button>
        </Card>
  );
}

export default Dashboard;

子组件 (通过useImperativeHandle() 抛出)

javascript">// props (类组件则使用this.props)
import React, { useImperativeHandle } from "react";
const Childdren = React.forwardRef((props:any, ref) => {
  useImperativeHandle(
    ref,
    () => ({ add,num }) //父组件通过ref获取值,要在这里抛出
  );
  const num = 999;
  const add = () => {
    console.log('我是子组件方法')
  };
  return (
    <div>
      <h1>父传子:{props.title}</h1>
      <button >这是子组件</button>
      
    </div>
  );
});
export default Childdren;


http://www.niftyadmin.cn/n/5277768.html

相关文章

Hive参数操作和运行方式

Hive参数操作和运行方式 1、Hive参数操作 1、hive参数介绍 ​ hive当中的参数、变量都是以命名空间开头的&#xff0c;详情如下表所示&#xff1a; 命名空间读写权限含义hiveconf可读写hive-site.xml当中的各配置变量例&#xff1a;hive --hiveconf hive.cli.print.headert…

Android ViewModel的简单应用

Android ViewModel 是一种设计模式&#xff0c;用于在应用程序组件之间存储和管理UI相关的数据。下面是使用Android ViewModel的基本步骤&#xff1a; 添加 ViewModel 依赖&#xff1a;在项目的 build.gradle 文件中添加以下依赖&#xff1a; implementation "androidx.…

互联网加竞赛 python+深度学习+opencv实现植物识别算法系统

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于深度学习的植物识别算法研究与实现 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;4分工作量&#xff1a;4分创新点&#xff1a;4分 &#x1f9ff; 更多…

中电金信:金融电子化 | 打磨算力基础设施,赋能金融业数字化转型

10月8日&#xff0c;工信部、人民银行等六部门联合印发《算力基础设施高质量发展行动计划》&#xff08;以下简称《行动计划》&#xff09;&#xff0c;在行业和产业界吸引了信息产业和相关应用行业的广泛关注。作为引领我国算力基础设施建设的重要指南&#xff0c;《行动计划》…

Pytorch:backward()函数详解

.backward() .backward() 是 PyTorch 中用于自动求导的函数&#xff0c;它的主要作用是计算损失函数对模型参数的梯度&#xff0c;从而实现反向传播算法。 在深度学习中&#xff0c;我们通常使用梯度下降算法来更新模型参数&#xff0c;使得模型能够逐步逼近最优解。 在梯度下…

【重点!】【二分查找】33.搜索旋转排序数组

题目 法1&#xff1a;二分查找 根据mid来分段&#xff0c;此思路需要牢记&#xff01;&#xff01;&#xff01; class Solution {public int search(int[] nums, int target) {if (nums.length 0) {return -1;}int left 0, right nums.length - 1, mid 0;while (left &…

Pytorch-RealSR超分模型

1.前言 RealSR 是一种基于学习的单图像超分辨率&#xff08;SISR&#xff09;模型&#xff0c;专门针对真实世界的图像。它由腾讯 AI 实验室于 2020 年提出。 RealSR 的核心创新是提出了一种新的退化模型&#xff0c;该模型能够更好地模拟真实世界的退化过程。该模型考虑了真实…

zookeeper安装和启动

镜像下载地址&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/ 解压后将 conf 目录下的 zoo_sample.cfg 重命名为 zoo.cfg&#xff0c; 配置 admin.serverPort&#xff0c;防止跟 Tomcat 端口冲突 # 发送心跳的时间间隔 tickTime2000 # 集群中的follower服…