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 相关文章推荐
ajax 文件上传应用简单实现
Mar 03 Javascript
javascript parseInt 大改造
Sep 27 Javascript
jQuery中的常用事件总结
Dec 27 Javascript
当jQuery1.7遇上focus方法的问题
Jan 26 Javascript
JS替换文本域内的回车示例
Feb 18 Javascript
详细分析使用AngularJS编程中提交表单的方式
Jun 19 Javascript
基于jQuery实现多层次的手风琴效果附源码
Sep 21 Javascript
AngularJS指令中的绑定策略实例分析
Dec 14 Javascript
基于angular实现模拟微信小程序swiper组件
Jun 11 Javascript
在 Linux/Unix 中不重启 Vim 而重新加载 .vimrc 文件的流程
Mar 21 Javascript
vue-devtools的安装和使用步骤详解
Oct 17 Javascript
微信小程序使用GoEasy实现websocket实时通讯
May 19 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中的登陆login
2007/01/18 PHP
PHP中error_reporting()用法详解
2015/08/31 PHP
PHP删除二维数组中相同元素及数组重复值的方法示例
2017/05/05 PHP
php中字符串和整数比较的操作方法
2019/06/06 PHP
php引用和拷贝的区别知识点总结
2019/09/23 PHP
js获取提交的字符串的字节数
2009/02/09 Javascript
js操作二级联动实现代码
2010/07/27 Javascript
JavaScript入门之基本函数详解
2011/10/21 Javascript
Highcharts入门之简介
2016/08/02 Javascript
Vue.js绑定HTML class数组语法错误的原因分析
2016/10/19 Javascript
bootstrap css样式之表单
2017/01/19 Javascript
微信小程序实现给循环列表添加点击样式实例
2017/04/26 Javascript
基于js中this和event 的区别(详解)
2017/10/24 Javascript
BootStrap table实现表格行拖拽效果
2018/12/01 Javascript
vue开发拖拽进度条滑动组件
2019/09/21 Javascript
Vue移动端实现图片上传及超过1M压缩上传
2019/12/23 Javascript
JavaScript事件冒泡机制原理实例解析
2020/01/14 Javascript
[02:41]DOTA2英雄基础教程 冥魂大帝
2014/01/16 DOTA
在Django框架中编写Context处理器的方法
2015/07/20 Python
python爬虫基本知识
2018/03/05 Python
Python read函数按字节(字符)读取文件的实现
2019/07/03 Python
python3 实现的对象与json相互转换操作示例
2019/08/17 Python
django日志默认打印request请求信息的方法示例
2020/05/17 Python
Python爬虫获取页面所有URL链接过程详解
2020/06/04 Python
使用OpenCV对车道进行实时检测的实现示例代码
2020/06/19 Python
python实现一个简单RPC框架的示例
2020/10/28 Python
Python+MySQL随机试卷及答案生成程序的示例代码
2021/02/01 Python
HTML5 input placeholder 颜色修改示例
2014/05/30 HTML / CSS
Shein英国:女性时尚网上商店
2019/04/10 全球购物
村创先争优活动总结
2014/08/28 职场文书
党员个人整改方案及措施
2014/10/25 职场文书
全国法制宣传日活动总结2014
2014/11/01 职场文书
2014年汽车销售工作总结
2014/12/01 职场文书
端午节活动总结报告
2015/02/11 职场文书
经理聘任证明
2015/03/02 职场文书
2015年全国助残日活动方案
2015/05/04 职场文书