当前位置: 首页 > news >正文

React+Typescript 父子组件事件传值

好 之前我们将 state 状态管理简单过了一下
那么 本文 我们来研究一下事假处理

点击事件上文中我们已经用过了 这里 我们就不去讲了 主要来说说 父子之间的事件

我们直接来编写一个小dom
我们父组件 编写代码如下

import Hello from "./components/hello";function App() {const obtain = () => {console.log("调用了 父组件的obtain");};return (<div className="App"><Hello title="高阶组件" age={20} onObtain={obtain} /></div>);
}export default App;

这里 我们定义了一个obtain函数
然后 给子组件绑定了一个 onObtain 事件 触发的函数时 指向本组件的obtain函数

然后 我们子组件编写代码如下

import * as React from "react";interface IProps {title: string,age: number,onObtain: any
}interface IState {count:number
}export default class hello extends React.Component<IProps,IState> {public readonly state: Readonly<IState> = {count: 520}public constructor(props:IProps){super(props);this.clickHide = this.clickHide.bind(this);this.requestParent = this.requestParent.bind(this);}public clickHide(){this.setState({count: 200})}public requestParent() {this.props.onObtain();}public render() {return (<div><div>{ this.state.count }</div><button onClick = { this.clickHide }>修改</button><button onClick = { this.requestParent }>调用父组件函数</button></div>)}
}

这里 我们写了个requestParent 点击按钮时触发
这里需要注意 我们函数直接在IProps中声明一下就好了 和 父组件传递的参数 props 一样
然后 我们为了方便类型直接给个any 任意类型
然后 当用户点击触发requestParent按钮时 我们调用父组件给的onObtain

我们运行项目然后点击按钮
在这里插入图片描述
可以看到 这个位置就没有任何问题 成功触发了

然后 我们进一步
写一个传递参数的
子组件的requestParent函数改成

public requestParent() {this.props.onObtain("小猫猫");
}

这样 我们就往onObtain中传了一个字符串 值为 小猫猫

然后 我们父组件的 obtain 改成这样

const obtain = (name:string) => {console.log(name);
};

这里 我们给obtain设置要接收一个参数 字符串类型的 键定义为name
然后 输出在控制台
我们再次运行项目 然后点击按钮
结果如下
在这里插入图片描述
也是没有任何问题

http://www.lryc.cn/news/140481.html

相关文章:

  • python人工智能和机器学习
  • [PyTorch][chapter 51][Auto-Encoder -1]
  • Uniapp或者微信小程序如何动态的计算Scrollview的高度
  • Abase数据库管理系统
  • 系统架构设计高级技能 · 大数据架构设计理论与实践
  • ubuntu上使用osg3.2+osgearth2.9
  • C语言巧妙打印64位整数
  • c语言每日一练(11)
  • SLAM十四讲学习笔记 第二期:部分课后实践代码
  • Android kotlin 跳转手机热点开关页面和判断热点是否打开
  • Redis 执行 RDB 快照期间,主进程可以正常处理命令吗?
  • Python加入Excel--生产力大提高|微软的全方面办公
  • Excel 分组排名
  • Redis初始以及安装
  • react导出、导入文件
  • (一)Redis——String
  • Spring Boot多环境指定yml或者properties
  • MinDoc:针对IT团队的文档、笔记系统
  • 【分享】华为设备登录安全配置案例
  • Starrocks与MySQL函数的区别
  • 【HTML】学习笔记(自用持续更新)
  • 代码随想录训练营第四十二天|0-1背包理论基础(一)、0-1背包理论基础(二)、416分割等和子集
  • linux 免交互
  • 自然语言处理从入门到应用——LangChain:索引(Indexes)-[文档加载器(Document Loaders)]
  • 7.接着跑一下triton官方教程
  • 波奇学C++:stl的list模拟实现
  • Flask 项目结构
  • 云计算在IT领域的发展和应用
  • 8年测试经验之谈 —— 接口自动化测试requests
  • 求助:vue从后端获取数据,如何对获得的数据进行拆分?