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 相关文章推荐
FusionCharts图表显示双Y轴双(多)曲线
Nov 22 Javascript
JS去除数组重复值的五种不同方法
Sep 06 Javascript
使用Jquery获取带特殊符号的ID 标签的方法
Apr 30 Javascript
Node.js连接MongoDB数据库产生的问题
Feb 08 Javascript
JS声明对象时属性名加引号与不加引号的问题及解决方法
Feb 16 Javascript
JS使用tween.js动画库实现轮播图并且有切换功能
Jul 17 Javascript
vue 中引用gojs绘制E-R图的方法示例
Aug 24 Javascript
node链接mongodb数据库的方法详解【阿里云服务器环境ubuntu】
Mar 07 Javascript
JavaScript 实现同时选取多个时间段的方法
Oct 17 Javascript
node.js中npm包管理工具用法分析
Feb 14 Javascript
36个正则表达式(开发效率提高80%)
Nov 17 Javascript
uniapp 微信小程序 自定义tabBar 导航
Apr 22 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
全国FM电台频率大全 - 10 江苏省
2020/03/11 无线电
wamp下修改mysql访问密码的解决方法
2013/05/07 PHP
PHP实现恶意DDOS攻击避免带宽占用问题方法
2015/05/27 PHP
ie focus bug 解决方法
2009/09/03 Javascript
jquery插件制作教程 txtHover
2012/08/17 Javascript
javascript瀑布流布局实现方法详解
2016/02/17 Javascript
JavaScript代码性能优化总结(推荐)
2016/05/16 Javascript
实例详解jQuery的无new构建
2016/08/02 Javascript
jQuery树插件zTree使用方法详解
2017/05/02 jQuery
angular.js指令中transclude选项及ng-transclude指令详解
2017/05/24 Javascript
收藏AngularJS中最重要的核心功能
2017/07/09 Javascript
打造通用的匀速运动框架(实例讲解)
2017/10/17 Javascript
动态Axios的配置步骤详解
2018/01/12 Javascript
小程序如何支持使用 async/await详解
2019/09/12 Javascript
JS实现可控制的进度条
2020/03/25 Javascript
Vue移动端用淘宝弹性布局lib-flexible插件做适配的方法
2020/05/26 Javascript
Jquery+javascript实现支付网页数字键盘
2020/12/21 jQuery
[01:02:10]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第一局
2016/02/26 DOTA
Python 实现简单的电话本功能
2015/08/09 Python
利用Python破解斗地主残局详解
2017/06/30 Python
基于Python代码编辑器的选用(详解)
2017/09/13 Python
使用Python编写Prometheus监控的方法
2018/10/15 Python
python实现移位加密和解密
2019/03/22 Python
使用Python做垃圾分类的原理及实例代码附源码
2019/07/02 Python
Python实现自定义读写分离代码实例
2019/11/16 Python
PyTorch实现重写/改写Dataset并载入Dataloader
2020/07/14 Python
Python安装并操作redis实现流程详解
2020/10/13 Python
filter使用python3代码进行迭代元素的实例详解
2020/12/03 Python
什么是数据抽象
2016/11/26 面试题
酒店拾金不昧表扬信
2014/01/18 职场文书
追悼会主持词
2014/03/20 职场文书
内勤主管岗位职责
2014/04/03 职场文书
庆国庆活动总结
2014/08/28 职场文书
深度学习详解之初试机器学习
2021/04/14 Python
手把手教你实现PyTorch的MNIST数据集
2021/06/28 Python
SpringBoot集成MongoDB实现文件上传的步骤
2022/04/18 MongoDB