• 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;
  • 相关阅读:
    Scrum Works 1.84安装
    使用Sandcastle Styles 来生成VS2008的帮助文档.
    NDoc 用户指南(转)
    第一章 C#语言基础(C# Language Elements)
    SQL Server 2005 中删除重复记录
    SDE 远程连接
    C# 按钮美化技巧
    SOP 中的 Service
    C# DateTime赋值为null
    C# WebBrowser显示html字符串
  • 原文地址:https://www.cnblogs.com/TreeCTJ/p/10178375.html
Copyright © 2020-2023  润新知