react 点击事件+父子传值

接下来要做的效果是,在父组件添加两个按钮,点击后改变父组件传过去的值

父组件

 1 import React, { Component } from ‘react‘;
 2 import Test from ‘./component/test‘;
 3 //声明welcome组件
 4 class welcome extends Component {
 5   //声明一个构造函数
 6   constructor(props) {
 7     super(props);
 8     //this.state是定义组件状态,可理解为组件中的数据,好比Vue中的data
 9     this.state = {
10       userName: ‘路飞‘,
11       userAge: 19
12     }
13   }
14   changUserName(){
15     //要修改this.state中的值,这是唯一的方法
16     this.setState({
17       userName: ‘路飞:海贼王的男人‘
18     })
19   }
20   // react元素 一律写在render函数中
21   render() {
22     return (
23       <div>
24         {/* 在子组件中声明一个userName属性,将this.state.userName的值传递到子组件中 */}
25         <Test userName={this.state.userName} userAge={this.state.userAge}></Test>
26         {/* 声明一个点击事件后面跟着一个bind(this) 是为了解决this指向问题 ,改变this指向 */}
27         <button onClick={this.changUserName.bind(this)}>改变userName</button>
28       </div>
29     );
30   }
31 }
32 //最后一定要记住 向外输出
33 export default welcome;

子组件

 1 import React, { Component } from ‘react‘;
 2
 3 class test extends Component {
 4   render() {
 5     return (
 6       <div>
 7         <h1>海贼王</h1>
 8         {/* 在子组件中用this.props接收父组件中传递过来的值 */}
 9         {[this.props.userName, this.props.userAge]}
10
11         {console.log(this.props)}
12         {/* 通过控制台打印,this.props是传递过来的是一个对象:{userName: "路飞", userAge: 19} */}
13       </div>
14     );
15   }
16 }
17
18 export default test;

原文地址:https://www.cnblogs.com/TreeCTJ/p/10178375.html

时间: 2024-08-29 06:37:45

react 点击事件+父子传值的相关文章

jQuery添加options点击事件并传值

说明: 根据选择不同店铺选项,上送不同id值,展示不同商品列表 var formStr = "{'supplierId':'供应链企业|%-jm-sprt-%|93794498-3'}"; $.ajax({ type : "post", dataType : "json", cache : false, url : "../../../webservice/gmall.json", // 提交到一般处理程序请求数据 data

深入React事件系统(React点击空白部分隐藏弹出层;React阻止事件冒泡失效)

只关注括号内问题的同学,可直接跳转到蓝字部分.(标题起的有点大,其实只讨论一个问题) 两个在React组件上绑定的事件,产生冲突后,使用e.stopPropagation(),阻止冒泡,即可防止事件冲突,毫无问题. 今天是踩了个React事件的坑,需求可以简化为:点击框体以外的部分则隐藏框体.最直接的想法,document上绑定个事件,设置控制显示隐藏的state为false,在框体上绑定个事件,阻止冒泡.这样点击框体内部就不会触发document上的事件. 等写完了,发现一个问题,无法阻止冒泡

react native点击事件传递参数

比如我们定义一个TouchableOpacity点击事件,该方法需要接收一个参数值,如下 _gotoSubClass(sectionID, rowID) { console.log("sectionID="+sectionID + "rowID=" + rowID); } 那么在TouchableOption组件的onPress属性中应该这样写: <TouchableOpacity onPress={() => this._gotoSubClass(se

VUE 点击事件(父子层级元素点击时踩坑记录)

<ul> <li @click="fatherClick"> <div @click.stop="childClick"> </div> </li> </ul> var vm_target = new Vue({ el: '#vm_target', data: { }, methods:{ /**父元素点击事件**/ fatherClick:function(event){ var el1 =

android 自定义带按钮的Notification及点击事件和伸缩通知栏

1.自定义一个带按钮的Notification布局:layout_notification: 2.创建Notification: RemoteViews views = new RemoteViews(getPackageName(),R.layout.layout_nitification); //自定义的布局视图 //按钮点击事件: PendingIntent homeIntent = PengdingIntent.getBroadcast(this,1,new Intent("action

动态生成的DOM做点击事件无效

有时候我们的标签都是从后台获取的数据,然后利用JS添加到页面上,当我们写生成的标签的点击事件(click)时没有效果. 例如: <section> 测试动态生成的DOM点击事件 <br /> </section> <script src="jquery-1.11.2.min.js"></script> <script> $(function () { $.ajax({ type: "post",

react 点击空白处隐藏弹出层

点击空白处隐藏弹出层的原理是:在 document 上绑定事件来隐藏弹出层,这样点击任何元素的时候都会冒泡到 document 上,都会执行隐藏弹出层的功能.然后我们在不需要隐藏弹出层的元素上阻止冒泡即可. class Select extends Component { constructor(props) { super(props); this.state = { selected: props.list[0], showList: false }; this.showList = thi

我的手机管家(20) 应用管理 介绍PopupWindow中点击事件

android:drawableTop="@drawable/img2"//Textview中显示图片 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent&qu

React 添加一个事件

React  添加一个事件 以点击事件为例 一般家在render渲染里 添加一个事件(在标签中用html原生元素以小写字母开头(onClick)) render:function(){ 添加一个事件(在标签中用html原生元素以小写字母开头(onClick)) return (<h2 onClick={this.handleClick}>点我!点击次数为:{this.state.clickCount}</h2>);} 原文地址:https://www.cnblogs.com/yao