react中类组件关于组件之间的数据传递

父组件向子组件传值:

父组件:

//引入react
import React, { Component } from 'react'

//引入子组件
import '@/views/Zuoye415/ZuoyeIndex.scss'

export default class ZuoyeIndex extends Component {
    
    //父组件中在state中声明数据
    state={
        topInfo:{
            name:'张三',
            age:66
        }
    }
    render(){
        //对state中的数据进行扩展
        let {topInfo} = this.state
        retuurn(
            <div>
                    //在组件标签上{topInfo}为要传递的数据
                {
                    <Zuoye415 {topInfo}></Zuoye415>
                }
            </div>
        )

    }

}

子组件:

import React, { Component } from 'react'

export default class Zuoye415 extends Component {
    //constructor进行数据初始化
    constructor(props){
        super(props)
        console.log('props',props)
    }
    render(){
        //扩展props中的数据
        let {name,age} = this.props
        return(
            <div>
                {name}今年{age}岁了
            </div>
        )

     }



}

子组件向父组件传值:

子组件:

import React, { Component } from 'react'

export default class Zuoye415 extends Component {
    //constructor进行数据初始化
    constructor(props){
        super(props)
        console.log('props',props)
    }
    //子传父
    getBirther(text){//text为形参,可以为任意变量
    console.log(this)//查看是否存在this
    console.log('子组件中将要传递给父组件中的数据:',text)
    this.props.callback(text)//自定义函数callback通过this.props将生日的值传递给父组件
    
    }
    
    render(){
        //扩展props中的数据
        let {name,age} = this.props
        return(
            <div>
                {name}今年{age}岁了
            </div>
            <button onClick={() => this.getBirther('5-1')}>返回{name}的生日</button>
        )

     }



}

父组件通过子组件中自定义的函数callback进行接收,callback也是自定义的函数名

//引入react
import React, { Component } from 'react'

//引入子组件
import '@/views/Zuoye415/ZuoyeIndex.scss'

export default class ZuoyeIndex extends Component {
    
    //父组件中在state中声明数据
    state={
        topInfo:{
            name:'张三',
            age:66
        }
    }
    //接收子组件数据的事件
    gettext=(text)=>{//text为形参,可以为任意变量,为子组件传递过来的参数
        //接收子组件传递过来的参数
        console.log('子组件中传递过来的数据:',text)
    }
    render(){
        //对state中的数据进行扩展
        let {topInfo} = this.state
        retuurn(
            <div>
                    //在组件标签上{topInfo}为要传递的数据
                    //callback为子组件自定义的函数
                {
                    <Zuoye415 {topInfo} callback={this.gettext}></Zuoye415>
                }
            </div>
        )

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值