react子组件如何向父组件传值

转自:http://blog.csdn.net/qizhiqq/article/details/52384554

黑色框为父,绿色框为子,红色框为孙子。父向子孙传值用props;子孙向父传值,要在父设置接收函数和state,同时用props将函数名传入子孙。(总的来说就是给子组件传入父组件的方法,在子组件中调用)

复制代码
var Grandson = React.createClass({
    render: function(){
        return (
            <div style={{border: "1px solid red",margin: "10px"}}>{this.props.name}:
                <select onChange={this.props.handleSelect}>
                    <option value="">男</option>
                    <option value="">女</option>
                </select>
            </div>
        )
    }
});
var Child = React.createClass({
    render: function(){
        return (
            <div style={{border: "1px solid green",margin: "10px"}}>
                {this.props.name}:<input onChange={this.props.handleVal}/>
                <Grandson name="性别" handleSelect={this.props.handleSelect}/>
            </div>
        )
    }
});
var Parent = React.createClass({
    getInitialState: function(){
        return {
            username: '',
            sex: ''
        }
    },
    handleVal: function(event){
        this.setState({username: event.target.value});
    },
    handleSelect: function(event) {
        this.setState({sex: event.target.value});
    },
    render: function(){
        return (
            <div style={{border: "1px solid #000",padding: "10px"}}>
                <div>用户姓名:{this.state.username}</div>
                <div>用户性别:{this.state.sex}</div>
                <Child name="姓名" handleVal={this.handleVal} handleSelect={this.handleSelect}/>
            </div>
        )
    }
});
React.render(
  <Parent />,
  document.getElementById('test')
);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React 组件向父组件传值的常用方式是通过回调函数。具体步骤如下: 1. 在组件定义一个回调函数,用于接收组件传递的值。 2. 将该回调函数作为 props 传递给组件。 3. 在组件,触发回调函数,并将要传递的值作为参数传递给该回调函数。 4. 在组件接收组件传递的值,并在需要的时候将其更新到状态。 示例代码如下: ``` // 组件 import React, { useState } from 'react'; import ChildComponent from './ChildComponent'; function ParentComponent() { const [value, setValue] = useState(''); const handleChildValue = (childValue) => { setValue(childValue); }; return ( <div> <ChildComponent onChildValue={handleChildValue} /> <p>组件传递的值为: {value}</p> </div> ); } // 组件 import React from 'react'; function ChildComponent(props) { const handleClick = () => { props.onChildValue('Hello, Parent Component!'); }; return ( <button onClick={handleClick}>向父组件传递值</button> ); } ``` 在上面的示例代码组件 `ChildComponent` 定义了一个按钮,当点击该按钮时,会触发回调函数 `props.onChildValue` 并将要传递的值 `'Hello, Parent Component!'` 作为参数传递给该函数。在组件 `ParentComponent` ,定义了回调函数 `handleChildValue`,并将该函数作为 props 传递给组件 `ChildComponent`。当组件触发回调函数后,组件接收组件传递的值,并将其更新到状态,最终在页面上显示出来。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值