zoukankan      html  css  js  c++  java
  • 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;
  • 相关阅读:
    通俗理解乐观锁和悲观锁
    面试系列-HashMap和Hashtable的区别
    单点登录原理与实现
    CodeReview常见代码问题
    漫画:什么是冒泡排序?
    Redis 和 Memcached 的区别
    动态图文了解 8 大排序算法
    分布式系统常见的事务处理机制
    面试系列-String,StringBuffer,StringBuilder三者区别
    面试系列-高并发之synchronized
  • 原文地址:https://www.cnblogs.com/TreeCTJ/p/10178375.html
Copyright © 2011-2022 走看看