react父子组件传值

react均是以组件构成,那父子组件传值就很重要了

父组件传值给子组件,不仅可以传值,传事件,还可以传实例

1、父组件传值给子组件

传值

父组件:

import React from ‘react‘;
import Children from ‘./Children‘;

class Father extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            msg:‘父组件的msg‘
        };
    }
    render() {
        return (
            <div>
                <div>我是父组件</div>
                <Children msg={this.state.msg}/>
            </div>
        );
    }
}

export default Father;

子组件:

import React from ‘react‘;

class Children extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            msg:‘子组件‘
        };
    }
    render() {
        return (
            <div>
                <div>子组件</div>
                <div>{this.props.msg}</div>
            </div>
        );
    }
}

export default Children;

效果如下:

传事件:

父组件:

import React from ‘react‘;
import Children from ‘./Children‘;

class Father extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            msg:‘父组件的msg‘
        };
    }
    run=()=>{
        alert(‘给子组件获取事件‘)
    }
    render() {
        return (
            <div>
                <div>我是父组件</div>
                <Children msg={this.run}/>
            </div>
        );
    }
}

export default Father;

子组件:

import React from ‘react‘;

class Children extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            msg:‘子组件‘
        };
    }
    render() {
        return (
            <div>
                <div>子组件</div>
                <div>{this.state.msg}</div>
                <button onClick={this.props.msg}>获取父组件的事件</button>
            </div>
        );
    }
}

export default Children;

效果如下:

获取父组件的整个实例

父组件:

import React from ‘react‘;
import Children from ‘./Children‘;

class Father extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            msg:‘父组件的msg‘
        };
    }
    run=()=>{
        alert(‘给子组件获取事件‘)
    }
    render() {
        return (
            <div>
                <div>我是父组件</div>
                <Children msg={this}/>
            </div>
        );
    }
}

export default Father;

子组件:

import React from ‘react‘;

class Children extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            msg:‘子组件‘
        };
    }
    render() {
        return (
            <div>
                <div>子组件</div>
                <div>{this.state.msg}</div>
                <div>获取父组件的值{this.props.msg.state.msg}</div>
                <button onClick={this.props.msg.run}>获取父组件的事件</button>
            </div>
        );
    }
}

export default Children;

效果如下:

2、子组件传值给父组件,通过ref传值

父组件:

import React from ‘react‘;
import Children from ‘./Children‘;

class Father extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            msg:‘父组件的msg‘
        };
    }
    getData=()=>{
        this.setState({
            msg:this.refs.children.state.msg
        })
    }
    render() {
        return (
            <div>
                <div>我是父组件</div>
                <div>{this.state.msg}</div>
                <Children ref=‘children‘/>
                <button onClick={this.getData}>获取子组件</button>
            </div>
        );
    }
}

export default Father;

子组件:

import React from ‘react‘;

class Children extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            msg:‘子组件‘
        };
    }
    render() {
        return (
            <div>
                <div>子组件</div>
            </div>
        );
    }
}

export default Children;

效果如下:

原文地址:https://www.cnblogs.com/zdping/p/10320964.html

时间: 2024-11-06 15:35:10

react父子组件传值的相关文章

十八、React react-router4.x中:实现路由模块化、以及嵌套路由父子组件传值

一.路由模块化(用字典定义路由,然后循环出来) 1.官方文档参考 [官方文档]https://reacttraining.com/react-router/web/guides/quick-start [路由模块化实例]https://reacttraining.com/react-router/web/example/route-config 2.路由模块化:实现代码 其它代码参考:十七:https://blog.csdn.net/u010132177/article/details/1033

React(7) --react父子组件传参

react父子组件传参 父级向子级传参:在父组件中,我们引入子组件,通过给子组件添加属性,来起到传参的作用,子组件可以通过props获取父组件传过来的参数. 在父组件中: import React from 'react' import ChildCom from './childCom.js' class ParentCom extends React.Component { render() { return ( <div> <h1>父组件</h1> <Chi

创建组件的方法,组件的props属性、state属性的用法和特点,父子组件传值,兄弟组件传值

1.创建组件的方法   函数组件   class组件 1.1 函数组 无状态函数式组件形式上表现为一个只带有一个 `render()` 方法的组件类,通过函数形式或者 `ES6` 箭头 `function`的形式在创建,并且该组件是无state状态的.具体的创建形式如下 1 import React from 'react '; 2 3 //定义一个React组件 4 function App() { 5 return ( 6 <div> 7 hello React... 8 </div

【vue】父组件主动调用子组件 /// 非父子组件传值

一  父组件主动调用子组件: 注意:在父组件使用子组件的标签上注入ref属性,例如: <div id="home"> <v-header ref="header"></v-header> <hr> 首页组件 <button @click="getChildData()">获取子组件的数据和方法</button> </div> 父组件主动获取子组件的数据和方法: 1

一个故事讲懂vue父子组件传值

作者:李佳明同学链接:https://www.jianshu.com/p/2272b6ca0f0c 一个故事讲懂vue父子组件传值 讲故事前先讲代码 父组件向子组件传值 父组件数据传递给子组件可以通过props属性来实现父组件: <template>  <div id="app">    <child-component v-bind:dataOfChild="dataOfParent"></child-component&

Angular 父子组件传值

Angular 父子组件传值 @Input  @Output  @ViewChild 新建一个头部组件 newsheader 在主组件引用 news 组件,在news组件添加 newsheader 组件. 设置newsheader组件样式 设置newsheader组件的内容,添加一个class属性 <h2 class="header">这是一个头部组件</h2> 如果需要全局设置,则在 style.css 中设置. 如果单独设置自己的,则在自己组件的css中设置

Vue父子组件传值

 Vue父子组件传值:有四种方式:props,ref,emit 和模板传递通信slot 通过props来传值: 静态传值就是直接通过props来传递 动态传值是通过v-bind来绑定一个要传递值的key,然后后面跟要传递的内容,不过这个内容是可以改变的 比如: <input v-model="parentMsg"> <child v-bind:message="parentMsg"></child> 传递的值会跟着input里面输

react基础总结篇1,定义组件实现父子组件传值

前端时间学习了vue,这几天开始入手react了. react项目搭建起来之后,我们一定会定义很多个组件.同样的也会涉及到父子组件的传值.今天来整理一下这个知识. 1,定义子组件步骤 1,引入react. import React,{Component} from 'react'; import './style.less'; 2,写组件并export default导出去用到了es6中的calss语法,提前说一下,this.props.content用来接收父组件中content的值,this

React 父子组件和非父子组件传值

零.this.props 可以接收到 外界的传值 和 此组件标签内部自定义的方法 例: <one vals={message} sendVal={this.handleReverse.bind(this)}></one> 此时在子组件中打印this.props this.props = { vals : '**', sendVal : fn } 由此我们可以进行父子组件之间传值 一.父传子 在子组件标签中用自定义属性进行传递,接收的时候通过this.props进行接收 /* 父组件