美文网首页React
React 父组件给子组件传值、方法、整个组件

React 父组件给子组件传值、方法、整个组件

作者: Lia代码猪崽 | 来源:发表于2019-08-13 16:37 被阅读0次

一、准备工作

1.定义一个父组件,名字为Parent

/src/component/Parent.js

import React, {Component} from 'react'

export default class Parent extends Component {
    constructor(props) {
        super(props)
        this.state = {
            name: '我是父组件',
            msg: '父组件传值给子组件'
        }
    }

    render() {
        return (
            <div>
                <h2>{ this.state.name }</h2>
            </div>
        )
    }
}

2.定义一个子组件 ,名字为Children

/src/component/Children.js

import React, {Component} from 'react'

export default class Children extends Component {
    constructor(props) {
        super(props)
        this.state = {
            name: '我是子组件',
            msg: '子组件传值给父组件'
        }
    }

    render() {
        return (
            <div>
                <h2>{ this.state.name }</h2>
            </div>
        )
    }
}
3.先在App.js里引入父组件Parent

/src/App.js

import React from 'react';
import Parent from './component/Parent'

function App() {
  return (
      <div>
          <Parent/>
      </div>
  );
}

export default App;

运行项目:


编译成功 界面如图所示,http://localhost:3000/
4.父组件Parent引入子组件Children
import React, {Component} from 'react'
import Children from './Children'

export default class Parent extends Component {
    constructor(props) {
        super(props)
        this.state = {
            name: '我是父组件',
            msg: '父组件传值给子组件'
        }
    }

    render() {
        return (
            <div>
                <h2>{ this.state.name }</h2>
                <h3>我要引入子组件了:</h3>
                <hr/>
                <Children/>
            </div>
        )
    }
}
已成功引入子组件

二、父组件Parent传值(msg)给子组件Children

React父组件传值给子组件的步骤:

  1. 父传子值:在调用子组件的时候,作为属性的值传给子组件<Children 共用的参数名={ this.state.值 } />
  2. 子接受父: 通过this.props来获取

Parent:

import React, {Component} from 'react'
import Children from './Children'

export default class Parent extends Component {
    constructor(props) {
        super(props)
        this.state = {
            name: '我是父组件',
            msg: '父组件传值给子组件'
        }
    }

    render() {
        return (
            <div>
                <h2>{ this.state.name }</h2>
                <h3>我要引入子组件了:</h3>
                <hr/>
                <Children parent-msg={ this.state.msg }/>
            </div>
        )
    }
}

Children:

import React, {Component} from 'react'

export default class Children extends Component {
    constructor(props) {
        super(props)
        this.state = {
            name: '我是子组件',
            msg: '子组件传值给父组件'
        }
    }

    render() {
        return (
            <div>
                <h2>{ this.state.name }</h2>
                <h3>{ this.props['parent-msg'] }</h3>
            </div>
        )
    }
}
绿色框框里的就是父传过来的parent-msg啦

二、父组件Parent传方法(run)给子组件Children

React父组件传方法给子组件的步骤:

  1. 父传子值:在调用子组件的时候,作为属性的值传给子组件<Children 共用的参数名={ this.方法名 } />
  2. 子接受父: 通过this.props来获取
    Parent
import React, {Component} from 'react'
import Children from './Children'

export default class Parent extends Component {
    constructor(props) {
        super(props)
        this.state = {
            name: '我是父组件',
            msg: '父组件传值给子组件'
        }
    }

    run = () => {
        alert('我是父组件的run方法')
    }
    render() {
        return (
            <div>
                <h2>{ this.state.name }</h2>
                <h3>我要引入子组件了:</h3>
                <hr/>
                <Children parent-msg={ this.state.msg } parent-run={ this.run } />
            </div>
        )
    }
}

Children:

import React, {Component} from 'react'

export default class Children extends Component {
    constructor(props) {
        super(props)
        this.state = {
            name: '我是子组件',
            msg: '子组件传值给父组件'
        }
    }

    render() {
        return (
            <div>
                <h2>{ this.state.name }</h2>
                <h3>{ this.props['parent-msg'] }</h3>
                <button onClick={this.props['parent-run']}>调用父组件的方法</button>
            </div>
        )
    }
}
点击按钮
子组件能调用父组件的方法

三、父组件Parent传整个组件(parent)给子组件Children

React父组件传整个组件给子组件步骤:

  1. 父传子值:在调用子组件的时候,作为属性的值传给子组件<Children 共用的参数名={ this }/>
  2. 子接受父: 通过this.props来获取

Parent:

import React, {Component} from 'react'
import Children from './Children'

export default class Parent extends Component {
    constructor(props) {
        super(props)
        this.state = {
            name: '我是父组件',
            msg: '父组件传值给子组件'
        }
    }

    run = () => {
        alert('我是父组件的run方法')
    }

    getName = () => {
        alert(this.state.name)
    }

    render() {
        return (
            <div>
                <h2>{ this.state.name }</h2>
                <h3>我要引入子组件了:</h3>
                <hr/>
                <Children parent-msg={ this.state.msg } parent-run={ this.run } parent-parent={ this } />
            </div>
        )
    }
}

Children:

import React, {Component} from 'react'

export default class Children extends Component {
    constructor(props) {
        super(props)
        this.state = {
            name: '我是子组件',
            msg: '子组件传值给父组件'
        }
    }

    render() {
        return (
            <div>
                <h2>{ this.state.name }</h2>
                <h3>{ this.props['parent-msg'] }</h3>
                <button onClick={this.props['parent-run']}>调用父组件的方法</button>
                <button onClick={this.props['parent-parent'].getName}>调用父组件的getName方法</button>
                <h3>获取父组件的name:{ this.props['parent-parent'].state.name }</h3>
                <h3>获取父组件的msg:{ this.props['parent-parent'].state.msg }</h3>
            </div>
        )
    }
}
成功获取到父组件的各种值,点击按钮
能调用到没直接传过来的getName方法

相关文章

  • react-父子组件间通信

    React-父子组件间通信 父组件传 值 给子组件, 传 方法 给子组件 子组件接收 值 ,触发父组件的 方法

  • Vue_组件间传值

    1、父组件传值给子组件2、子组件传值给父组件 1、父组件传值给子组件 2、子组件传值给父组件

  • react-native 父子组件之间传值

    1.父组件传值给子组件 父组件给子组件传值 react 和vue都是很相似的 , 很简单 1.父组件引入子组件im...

  • 2018-09-05

    组件传值问题 父组件给子组件传值应该使用props。子组件要给父组件传值,需要调用父组件传递的方法。props传值...

  • vue2.0 父子组件传值

    父组件传值给子组件 子组件 子组件通过 props 接收值 父组件 父组件通过标签属性传值 子组件传值给父组件 子...

  • VUE组件之间传值

    1.父组件传值给子组件 父组件image.png 子组件image.png 2.子组件传值给父组件 方法1: 子组...

  • vue组件间参数与事件传递

    父组件向子组件传值 以及父组件调用子组件方法 子组件向父组件传值 以及子组件触发调用父组件方法

  • react子组件、父组件相互传值

    子组件传图片路径imgUrl值给父组件,父组件传imgaddr值给子组件子组件: 父组件:

  • 子组件向父组件传值

    子组件向父组件传值 思路:子组件向父组件传值,可以通过调用父组件的方法,来变相的传值 父组件向子组件传递方法 父元...

  • Angular 8 父子组件之间通信(简单易懂)

    父组件给自组件传值 - @input 父组件不仅可以给子组件传递简单的数据,还可以把自己的方法以及整个父组件传给子...

网友评论

    本文标题:React 父组件给子组件传值、方法、整个组件

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