美文网首页
react子组件向父组件传值

react子组件向父组件传值

作者: WittyLu | 来源:发表于2018-07-03 22:46 被阅读0次

    相关资料:
    react 父组件怎么获取子组件的这个值
    React组件间信息传递方式
    react同级组件之间传值

    • 父 -> 子:props
    • 子 -> 父:父组件通过props传递回调函数给子组件,子组件调用函数将数据作为参数传递给父组件
    • 兄弟组件:因为React是单向数据流,因此需要借助父组件进行传递,通过父组件回调函数改变兄弟组件的props

    工作或者面试中经常遇到这样的问题,“子组件如何向父组件传值?”。其实很简单,概括起来就是:react中state改变了,组件才会update。父写好state和处理该state的函数,同时将函数名通过props属性值的形式传入子,子调用父的函数,同时引起state变化。

    例子1.这里如下图,用户邮箱为父,绿色框为子。 父组件为用户输入的邮箱设好state,即“{email: ''}”,同时写好处理state的函数,即“handleEmail”,这两个名称随意起;再将函数以props的形式传到子组件,子组件只需在事件发生时,调用父组件传过来的函数即可。

    //子组件
    var Child = React.createClass({
        render: function(){
            return (
                <div>
                    请输入邮箱:<input onChange={this.props.handleEmail}/>
                </div>
            )
        }
    });
    //父组件,此处通过event.target.value获取子组件的值
    var Parent = React.createClass({
        getInitialState: function(){
            return {
                email: ''
            }
        },
        handleEmail: function(event){
            this.setState({email: event.target.value});
        },
        render: function(){
            return (
                <div>
                    <div>用户邮箱:{this.state.email}</div>
                    <Child name="email" handleEmail={this.handleEmail.bind(this)}/>
                </div>
            )
        }
    });
    React.render(
      <Parent />,
      document.getElementById('test')
    );
    

    from https://www.cnblogs.com/lixuemin/p/5754289.html

    相关文章

      网友评论

          本文标题:react子组件向父组件传值

          本文链接:https://www.haomeiwen.com/subject/kqqsuftx.html