react组件传值(子传父)

本文介绍了一个React应用中如何实现父子组件之间的数据通信。具体来说,父组件通过传递一个更新自身状态的方法给子组件,子组件则通过调用该方法来更新父组件的状态,从而实现了从子到父的数据传递。

<div id="out"></div>

<script type="text/babel">
// 子传父   父组件获取子组件数据
//父组件传递一个可以改变自己状态的方法给子组件,子组件通过调用父组件传过来的方法来改变父组件的数据。
var Father = React.createClass({
        getInitialState:function(){
            return{
                res:""
            }
        },
        setVal:function(val){ //1.父组件定义一个改变自己状态的方法(setVal),获取子组件传递值之后重新赋值
        this.setState({
        res:val
        })
        },
        render:function(){//2.通过属性(value)传给子组件
            return(
                <div>
                    <h1>父组件</h1>
                    父组件获取子组件值-->{this.state.res}
                    <hr/>
                    <Child value={this.setVal}/>    
                  
                </div>
            )
        }
    });


    var Child = React.createClass({
        childChange:function(){   //3.子组件定义改变数据的方法,
            var str = this.refs.inputVal.value; 
            this.props.value(str); //4.把改变的数据传递给父组件,
        },
        render:function(){
            return(
                <div>
                    <h1>子组件</h1>
                    <input type = "text" ref = "inputVal" onChange = {this.childChange} />
                </div>
            )
        }
    });
    ReactDOM.render(<Father/>,document.getElementById("out"));
</script>

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值