zoukankan      html  css  js  c++  java
  • react----父子组件之间的参数传递

    1.父组件向子组件传递参数

     1 //父组件
     2 import React from 'react';
     3 import './header.css'
     4 import ComponentChild from './headerChild'
     5 class ComponentHeader extends React.Component {
     6   constructor () {
     7     super()
     8     this.state = {
     9       username: 'Song',
    10       age: 18
    11     }
    12   }
    13   render () {
    14     return (
    15       <div>
    16         <ComponentChild name="dongdong"/>//子组件
    17         <p>这是一个测试组件</p>
    18         <p>{this.state.age}</p>
    19       </div>   
    20     )
    21   }
    22 }
    23 export default ComponentHeader
    24 
    25 //子组件
    26 import React from 'react'
    27 class ComponentChild extends React.Component {  
    28   render () {
    29     return (
    30       <div>
    31         <p>{this.props.name}</p>//通过this.props.key来过去父组件传递过来的数据
    32       </div>
    33     )
    34   }
    35 }
    36 export default ComponentChild

    2.子组件向父组件传递参数

     1 //子组件
     2 import React from 'react'
     3 class ComponentChild extends React.Component {  
     4   render () {
     5     return (
     6       <div>
     7         <button>点击测试:<input type="text" onChange={this.props.handleChange}/></button>//通过函数的形式将参数传递给父组件
     8         <p>{this.props.name}</p>
     9       </div>
    10     )
    11   }
    12 }
    13 export default ComponentChild
    14 
    15 //父组件
    16 import React from 'react';
    17 import './header.css'
    18 import ComponentChild from './headerChild'
    19 class ComponentHeader extends React.Component {
    20   constructor () {
    21     super()
    22     this.state = {
    23       username: 'Song',
    24       age: 18
    25     }
    26   }
    27   handleChange (event) { // 这个函数是可以用来获取子组件传递过来的数据
    28     this.setState({age:event.target.value})//使用setState将子组件传递过来的值,设置给父组件中的state
    29   }
    30   render () {
    31     return (
    32       <div>
    33         <ComponentChild handleChange={this.handleChange.bind(this)} name="dongdong"/> //这里注意一定要使用bind(this)改变this的指向,否则会报错,显示找不到this
    34         <p>这是一个测试组件</p>
    35         <p>{this.state.age}</p>
    36       </div>   
    37     )
    38   }
    39 }
    40 export default ComponentHeader

     这里面注意一点,state是属于组件的私有属性的,props属于外来属性

  • 相关阅读:
    正则表达式在线测试(生成)工具
    org.eclipse.swt.custom.StyledText.getScrollbarsMode()I
    MySQL修改表一次添加多个列(字段)和索引
    How can I view currently running MySQL queries?( 查看正在运行的MySQL语句/脚本命令)
    faster alter table add column
    提取data.frame中的部分数据(不含列标题和行标题)
    How to generate a random number in R
    INSTALLMENT of QValue
    Linux 执行ll命令时指定按文件时间或大小排序
    替换 data.frame 中的特殊的值
  • 原文地址:https://www.cnblogs.com/songdongdong/p/7338131.html
Copyright © 2011-2022 走看看