React 之单向数据流

React 中父子组件间属性的传递与操作是比较常见的,刚入门React 的小伙伴可能遇到过这样的问题:
1 子组件无法直接操作父组件的属性
2 子组件无法直接向父组件传递属性值
那么该如何解决此类问题呢?
答案是将父组件的方法以属性的形式传递给子组件,进而操作父组件的属性。
接下来用一个demo演示。
拷贝代码注意删除封号.

> `import React from 'react';
import Son from './Son';
class Father extends React.Component {
    state = {
       num : 1 
     } 
    render() { 
        return (
            <div>
                <Son num = {this.state.num}/>
            </div>
        );
    }
}
export default Father

效果
在这里插入图片描述
接下来通过子类调用父类方法修改父类属性。
首先在父组件创建修改属性的方法,并将它传递给子组件,注意绑定好this。
修改后代码如下:

import React from 'react';
import Son from './Son';
class Father extends React.Component {
    state = {
       num : 1 
     } 
     constructor(props){
         super(props)
         this.updateNum = this.updateNum.bind(this)
     }
    render() { 
        return (
            <div>
                <Son num = {this.state.num} updateNum = {this.updateNum}/>
            </div>
        );
    }
    updateNum(newNum){
        this.setState({
            num:newNum
        })
    }
}
export default Father;

子组件代码如下:

import React from 'react';
class Son extends React.Component {
    state = { 
        a : 1 
     } 
    constructor(props){
        super(props)
        
    }
    render() { 
        return (
           <div>
               {this.props.num}
               <button onClick={this.changeNum.bind(this)}>Update</button>
           </div>
        );
    }
    changeNum(){
        this.setState({
            a : this.state.a+1
        })
        this.props.updateNum(this.state.a)
    }
}
 
export default Son;

效果图:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值