React父子组件间的传值的方法


Posted in Javascript onNovember 13, 2018

父组件向子组件传值:

父组件:

import React, { Component } from 'react';
import Child from './chlid';

class parent extends Component{
 constructor(props) {
  super(props);
  this.state = {
   txt0:"默认值0",
   txt1:"默认值1"
  }
 }
 componentDidMount(){

 }
 parToson(){
  this.setState({
   txt0:"哈哈哈哈"
  })
 }
 sonToPar(e){
  this.setState({
   txt1:e
  })
 }
 render(){
  const style={
   paddingLeft:"150px"
  }
  return(
   <div style={style}>
    <button onClick={this.parToson.bind(this)}>传值给子组件</button>
    <div>接受子组件的传值为:{this.state.txt1}</div>
    <br/>
    <Child message={this.state.txt0} getsonToPar={this.sonToPar.bind(this)}/>
   </div>
  )
 }

}

子组件:

import React, { Component } from 'react';

class child extends Component{
 constructor(props) {
  super(props);
  this.state = {
   msg:"啦啦啦啦"
  }
 }
 componentDidMount(){

 }
 render(){
  return(
   <div>
    <div>接受父组件传的值为:{this.props.message}</div>
    <button onClick={()=>this.props.getsonToPar(this.state.msg)}>传值给父组件</button>
   </div>
  )
 }
}

export default child;

github:https://github.com/Rossy11/react/blob/master/src/component/router4.js

补充:

子组件向父组件传值,

同样是父组件:

import React from "react"

import ComentList from "./ComentList"
class Comment extends React.Component {

 constructor(props) {

  super(props);

  this.state = {

   parentText: "this is parent text",
   arr: [{

    "userName": "fangMing", "text": "123333", "result": true

   }, {

    "userName": "zhangSan", "text": "345555", "result": false

   }, {

    "userName": "liSi", "text": "567777", "result": true

   }, {

    "userName": "wangWu", "text": "789999", "result": true

   },]

  }

 }
 fn(data) {

  this.setState({

   parentText: data //把父组件中的parentText替换为子组件传递的值

  },() =>{

   console.log(this.state.parentText);//setState是异步操作,但是我们可以在它的回调函数里面进行操作

  });

 

 }
 render() {

  return (

   <div>

    //通过绑定事件进行值的运算,这个地方一定要记得.bind(this),

   不然会报错,切记切记,因为通过事件传递的时候this的指向已经改变

    <ComentList arr={this.state.arr} pfn={this.fn.bind(this)}> 

    </ComentList>

    <p>

     text is {this.state.parentText}

    </p>

  

   </div>

 

  )

 }

}
export default Comment;

子组件:

import React from "react"
class ComentList extends React.Component {

 constructor(props) {

  super(props);

  this.state = ({

   childText: "this is child text"

  })
 }

 clickFun(text) {

  this.props.pfn(text)//这个地方把值传递给了props的事件当中

 }

 render() {

  return (

   <div className="list">

    <ul>

     {

      this.props.arr.map(item => {

       return (

        <li key={item.userName}>

         {item.userName} 评论是:{item.text}

        </li>

       )

      })

     }

    </ul>

    //通过事件进行传值,如果想得到event,可以在参数最后加一个event,

    这个地方还是要强调,this,this,this

    <button onClick={this.clickFun.bind(this, this.state.childText)}>

     click me

    </button>

   </div>

  )

 }

}
export default ComentList;

before:

React父子组件间的传值的方法

after:

React父子组件间的传值的方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript之typeof、instanceof操作符使用探讨
May 19 Javascript
js二维数组定义和初始化的三种方法总结
Mar 03 Javascript
jquery mobile 移动web(5)
Dec 20 Javascript
关于JS中二维数组的声明方法
Sep 24 Javascript
js带闹铃功能的倒计时代码
Sep 29 Javascript
手机端实现Bootstrap简单图片轮播效果
Oct 13 Javascript
关于Node.js的events.EventEmitter用法介绍
Apr 01 Javascript
JS笛卡尔积算法与多重数组笛卡尔积实现方法示例
Dec 01 Javascript
JS实现用特殊符号替换字符串的中间部分区域的实例代码
Jul 24 Javascript
Vue瀑布流插件的使用示例
Sep 19 Javascript
vue 实现通过vuex 存储值 在不同界面使用
Nov 11 Javascript
Vue+Element UI 树形控件整合下拉功能菜单(tree + dropdown +input)
Aug 28 Javascript
JS中使用cavas截图网页并解决跨域及模糊问题
Nov 13 #Javascript
详解如何用typescript开发koa2的二三事
Nov 13 #Javascript
详解koa2学习中使用 async 、await、promise解决异步的问题
Nov 13 #Javascript
koa源码中promise的解读
Nov 13 #Javascript
vue-router传递参数的几种方式实例详解
Nov 13 #Javascript
vue-router的使用方法及含参数的配置方法
Nov 13 #Javascript
webpack 从指定入口文件中提取公共文件的方法
Nov 13 #Javascript
You might like
一步一步学习PHP(7) php 字符串相关应用
2010/03/05 PHP
ThinkPHP中的关联模型注意点
2014/06/16 PHP
微信公众号开发之语音消息识别php代码
2016/08/08 PHP
利用PHP获取访客IP、地区位置、浏览器及来源页面等信息
2017/06/27 PHP
PHP实现无限极分类的两种方式示例【递归和引用方式】
2019/03/25 PHP
关于Yii中模型场景的一些简单介绍
2019/09/22 PHP
javascript游戏开发之《三国志曹操传》零部件开发(二)人物行走的实现
2013/01/23 Javascript
js 获取范围内的随机数实例代码
2016/08/02 Javascript
Angularjs中date过滤器失效的问题及解决方法
2018/07/06 Javascript
JavaScript实现无限级递归树的示例代码
2019/03/29 Javascript
vue v-for 使用问题整理小结
2019/08/04 Javascript
three.js欧拉角和四元数的使用方法
2020/07/26 Javascript
[00:28]DOTA2北京网鱼队选拔赛
2015/04/08 DOTA
python通过urllib2获取带有中文参数url内容的方法
2015/03/13 Python
在Python的Tornado框架中实现简单的在线代理的教程
2015/05/02 Python
Python中max函数用法实例分析
2015/07/17 Python
Python 列表(List) 的三种遍历方法实例 详解
2017/04/15 Python
python paramiko模块学习分享
2017/08/23 Python
Python SQLite3简介
2018/02/22 Python
pandas groupby 分组取每组的前几行记录方法
2018/04/20 Python
Django对接支付宝实现支付宝充值金币功能示例
2019/12/17 Python
关于tensorflow的几种参数初始化方法小结
2020/01/04 Python
Tensorflow: 从checkpoint文件中读取tensor方式
2020/02/10 Python
Python文件操作模拟用户登陆代码实例
2020/06/09 Python
使用SimpleITK读取和保存NIfTI/DICOM文件实例
2020/07/01 Python
阿提哈德航空官方网站:Etihad Airways
2017/01/06 全球购物
美国孩之宝玩具官网:Hasbro Pulse
2019/06/24 全球购物
为什么要有struct关键字
2012/05/08 面试题
sleep()方法和wait()方法的区别是什么
2012/11/17 面试题
儿科护士实习自我鉴定
2013/10/17 职场文书
入党积极分子思想汇报范文
2014/01/05 职场文书
优秀教师工作感言
2014/02/16 职场文书
软件毕业生个人鉴定
2014/03/03 职场文书
学前班学生评语
2014/12/29 职场文书
幼儿园中班个人总结
2015/02/28 职场文书
2015年治庸问责工作总结
2015/07/27 职场文书