react如何在父组件中调用子组件事件

父组件是如何使用子组件的事件的,下边数值累加的例子

类组件

将子组件的this传到父组件,给父组件添加一个属性,值为this,之后就可以通过父组件的属性调用子组件的事件了

import React,{Component} from 'react';// 这是子组件
class A extends Component{componentDidMount() {this.props.fn(this)}state = {count:1}render() {let { count } = this.state;return (<div>子组件的值: {count}</div>)}
}// 这是父组件class B extends Component{// 这个事件是为了拿到子组件的thisfn_getThis = (_this) => {this.$child=_this}// 已经拥有子组件this,可以随意调用子组件事件了increment = () => {this.$child.setState(state => {return {count:state.count+1}})   }render() {return (<div><A fn={this.fn_getThis} /><button onClick={()=>{this.increment()}}>父组件的按钮</button></div>)}
}
export default B;

函数组件

useRef,useImperativeHandle ,forwardRef 3个api的配合使用

useImperativeHandle:可以让你在使用 ref 时自定义暴露给父组件的实例值。在大多数情况下,应当避免使用 ref 这样的命令式代码。useImperativeHandle 应当与 forwardRef 一起使用。语法:  useImperativeHandle(ref, createHandle, [deps])
forwardRef:一个函数,返回一个拥有第二个参数的组件
import React,{useRef,useImperativeHandle ,forwardRef,useState} from 'react';// 这是子组件
const A = (props,ref) => {let [count, setCount] = useState(0)useImperativeHandle(ref, () => {return {imcrement:() => {setCount(value => {return value + 1})}        }})return (<div>{count}</div>)
}const NewA = forwardRef(A)// 这是子组件
const B = () => {let refA = useRef();const fn_sonImcrement = () => {refA.current.imcrement()}return(<div><NewA ref={refA} /><button onClick={()=>{fn_sonImcrement()}}>按钮</button></div>)
}export default B;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/510981.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenSergo 正式开源,多家厂商共建微服务治理规范和实现

简介 OpenSergo&#xff0c;Open 是开放的意思&#xff0c;Sergo 则是取了服务治理两个英文单词 Service Governance 的前部分字母 Ser 和 Go&#xff0c;合起来即是一个开放的服务治理项目。 该项目由阿里云、bilibili、字节跳动&#xff0c;以及 Spring Cloud Alibaba、Nacos…

Linux中常见的网络端口号

在使用计算机或智能手机时&#xff0c;我们使用各种硬件端口&#xff0c;如用于音频、HDMI、Type-c 等的 3.5mm 端口&#xff0c;其用于与硬件外围设备通信。同样&#xff0c;网络端口可以让我们在一台计算机上访问各种网络服务来达到通信的目的。因此&#xff0c;端口被认为是…

如何在云原生混部场景下利用资源配额高效分配集群资源?

简介&#xff1a;由于混部是一个复杂的技术及运维体系&#xff0c;包括 K8s 调度、OS 隔离、可观测性等等各种技术&#xff0c;之前的一篇文章《历经 7 年双 11 实战&#xff0c;阿里巴巴是如何定义云原生混部调度优先级及服务质量的&#xff1f;》&#xff0c;主要聚焦在调度优…

前端面试题网址合辑

八个笔试&面试仓库 1.Front-end Developer Interview Questions网址&#xff1a;https://h5bp.org/Front-end-Developer-Interview-Questions/ 2.CS-Interview-knowledge-Map 网址&#xff1a;https://github.com/InterviewMap/CS-Interview-Knowledge-Map 3.Daily-Questio…

稳定性与高可用保障的工作思路

简介&#xff1a;稳定性与高可用性是老生常谈的两个词。凭借经验和感受我们知道&#xff0c;提高系统的这两项指标&#xff0c;系统会更加健康&#xff0c;产品也会有更好的用户体验。但是如果要给稳定性和高可用性下一个定义该如何表述&#xff1f;稳定性和高可用性这二者又有…

招商银行 KubeVela 离线部署实践

简介&#xff1a;本文将以 KubeVela v1.2.5 版本为例&#xff0c;介绍招商银行 KubeVela 的离线部署实践&#xff0c;来帮助其他用户在离线环境中更便捷的完成 KubeVela 的部署。 招商银行云平台开发团队自 2021 年开始接触 KubeVela&#xff0c;并探索 KubeVela 在招商银行云…

腾讯云数据库自研内核全新升级 新架构比原先性能提升20%

9月16日&#xff0c;腾讯云数据库自研内核TXSQL完成了全新升级。搭载了新一代内核的云数据库在性能上较之前提升超过20%&#xff0c;延迟降低80%。目前&#xff0c;新一代内核TXSQL已应用于腾讯云数据库MySQL、分布式数据库TDSQL、云原生数据库TDSQL-C等多款主流云数据库产品中…

系统性能分析从入门到进阶

简介&#xff1a;本文以系统为中心, 结合日常工作和用例, 由浅入深地介绍了性能分析的一些方法和体会, 希望对想了解系统性能分析的同学有所帮助。 作者 | 勿非 本文以系统为中心, 结合日常工作和用例, 由浅入深地介绍了性能分析的一些方法和体会, 希望对想了解系统性能分析的…

百度地图实用案例

1、创建一个js文件 export function BMPGL(ak) {return new Promise(function (resolve, reject) {window.init function () {// eslint-disable-next-lineresolve(BMapGL)}const script document.createElement(script)script.type text/javascriptscript.src http://api…

宜搭小技巧|第一时间看到审批进度?消息通知来帮你

简介&#xff1a;「消息通知」自动发送&#xff0c;再也不用担心错过流程审批进度&#xff01; 今天&#xff0c;宜小搭要申请出差&#xff0c;为了第一时间获取审批进度&#xff0c;他频繁刷新审批页面&#xff0c;这样既麻烦同时也浪费了大量时间&#xff0c;影响其他工作。…

一看即会:Serverless 应用开发的 7 个实战小技巧

简介&#xff1a;干货满满&#xff0c;马住收藏&#xff01; Serverless 应用开发的 7 个经验心得 作者说&#xff1a;Serverless 架构下的应用开发&#xff0c;与传统架构的应用开发还是有比较大的区别点的&#xff0c;例如天然分布式架构会让很多框架丧失一定的"便利性…

vue路由权限

1&#xff0c;配置每个页面的meta信息 meta:{grade:[1,2,3], //权限等级title:页面标题,icon:图标,show:是否展示导航 } 2&#xff0c;将无权限的页面路由直接配置到routes let routes [{path: /login,name: login,component: () > import(../components/login/login.vu…

如何使用 Serverless Devs 部署静态网站到函数计算

简介&#xff1a;手把手教你&#xff1a;如何使用 Serverless Devs 部署静态网站到函数计算。 前言 公司经常有一些网站需要发布上线&#xff0c;对比了几款不同的产品后&#xff0c;决定使用阿里云的函数计算&#xff08;FC)来托管构建出来的静态网站。 FC 弹性实例自带的50…

一个好的科技公司logo长这样

简介&#xff1a;一个好的科技logo能体现出行业独有的专业性和技术优势&#xff0c;让你的公司科技感加满&#xff01; 近年来&#xff0c;越来越多的初创公司崭露头角&#xff0c;其中科技互联网公司的比重非常高。小云也收到很多朋友的留言&#xff0c;询问科技类公司应该怎…

滚动页面触发相应位置动画 ---react

需要实现的效果&#xff1a; &#xff08;滚动到内容区域触发&#xff09; 第一段内容移动效果 第二段内容淡入 第三段内容缩放实现思路 滚动过的距离当前窗口的高度>元素到顶部窗口的距离 >则触发动画整体代码 import React,{useRef,useEffect,useState} from react;…

系列解读 SMC-R (二):融合 TCP 与 RDMA 的 SMC-R 通信 | 龙蜥技术

简介&#xff1a;本篇以 first contact (通信两端建立首个连接) 场景为例&#xff0c;介绍 SMC-R 通信流程。 文/龙蜥社区高性能网络SIG 一、引言 通过上一篇文章 《系列解读SMC-R&#xff1a;透明无感提升云上 TCP 应用网络性能&#xff08;一&#xff09;》我们了解到&…

北京大学、阿里巴巴成立联合实验室,聚焦人工智能理论和创新算法研究

9月17日&#xff0c;在北京大学智能学科建设20周年大会上&#xff0c;北京大学和阿里巴巴共同宣布成立“北大-阿里妈妈人工智能创新联合实验室” &#xff08;以下简称实验室&#xff09;。实验室将聚焦人工智能前沿领域的理论、方法与关键技术展开研究&#xff0c;为社会和企业…

智能开放搜索上线定制分词器

简介&#xff1a;智能开放搜索上线定制召回模型-定制分词器功能&#xff0c;满足各行业、垂类、业务特殊&#xff0c;对搜索有较高分词要求的客户&#xff0c;提升语义理解能力&#xff0c;精准召回用户搜索意图。 NLP算法在搜索链路中的应用 这是一个完整的从查询词到搜索结…

滚动一屏距离

const top_page () > {if (document.documentElement.scrollTop 0) {return }let timmer;let h document.documentElement.clientHeightlet n 0timmer setInterval(() > {n;console.log(执行)if (n > h / 20) {clearInterval(timmer)}document.documentElement.s…

云端渲染时长1.58亿核小时,阿里云助力国漫巨制《新神榜:杨戬》提升视效

当前&#xff0c;追光动画新作《新神榜&#xff1a;杨戬》&#xff08;以下简称“杨戬”&#xff09;正在热映&#xff0c;制作水准再次升级。无论是“水墨特效太极图大战”&#xff0c;亦或神女婉罗的灵动舞姿&#xff0c;还是元神现身的超燃瞬间&#xff0c;都极具视觉震撼。…