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 相关文章推荐
jQuery 获取对象 定位子对象
May 31 Javascript
jquery提取元素里的纯文本不包含span等里的内容
Sep 30 Javascript
同域jQuery(跨)iframe操作DOM(示例代码)
Dec 13 Javascript
js获得当前时区夏令时发生和终止的时间代码
Feb 23 Javascript
jQuery实现Twitter的自动文字补齐特效
Nov 28 Javascript
微信小程序 传值取值的几种方法总结
Jan 16 Javascript
jquery.form.js异步提交表单详解
Apr 25 jQuery
vue页面离开后执行函数的实例
Mar 13 Javascript
element vue validate验证名称重复 输入框与后台重复验证 特殊字符 字符长度 及注意事项小结【实例代码】
Nov 20 Javascript
layui时间控件选择时间范围的实现方法
Sep 28 Javascript
vue路由拦截器和请求拦截器知识点总结
Nov 08 Javascript
echarts柱状图背景重叠组合而非并列的实现代码
Dec 10 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
删除及到期域名的查看(抢域名必备哦)
2008/05/14 PHP
php通过COM类调用组件的实现代码
2012/01/11 PHP
PHP安全性漫谈
2012/06/28 PHP
PHP 观察者模式深入理解与应用分析
2019/09/25 PHP
用js实现的一个Flash滚动轮换显示图片代码生成器
2007/03/14 Javascript
非常有用的40款jQuery 插件推荐(系列二)
2011/12/25 Javascript
公共js在页面底部加载的注意事项介绍
2013/07/18 Javascript
javascript的propertyIsEnumerable()方法使用介绍
2014/04/09 Javascript
使用jQueryMobile实现滑动翻页效果的方法
2015/02/04 Javascript
nodeJS代码实现计算交社保是否合适
2015/03/09 NodeJs
Bootstrap~多级导航(级联导航)的实现效果【附代码】
2016/03/08 Javascript
jQuery实现的自动加载页面功能示例
2016/09/04 Javascript
微信小程序 跳转传参数与传对象详解及实例代码
2017/03/14 Javascript
easyui-edatagrid.js实现回车键结束编辑功能的实例
2017/04/12 Javascript
深入探究angular2 UI组件之primeNG用法
2017/07/26 Javascript
JS获取input[file]的值并显示在页面的实现方法
2018/03/09 Javascript
微信小程序项目总结之点赞 删除列表 分享功能
2018/06/25 Javascript
javascript将非数值转换为数值
2018/09/13 Javascript
node app 打包工具pkg的具体使用
2019/01/17 Javascript
Vue 3.0 前瞻Vue Function API新特性体验
2019/08/12 Javascript
Python的动态重新封装的教程
2015/04/11 Python
Anaconda入门使用总结
2018/04/05 Python
PyCharm鼠标右键不显示Run unittest的解决方法
2018/11/30 Python
浅谈python出错时traceback的解读
2020/07/15 Python
某公司.Net方向面试题
2014/04/24 面试题
金鑫耀Java笔试题
2014/09/06 面试题
工程总经理工作职责
2013/12/09 职场文书
教师实习自我鉴定
2013/12/13 职场文书
竞争性谈判邀请书
2014/02/06 职场文书
2014学雷锋活动心得体会
2014/03/10 职场文书
省级优秀班集体申报材料
2014/05/25 职场文书
解除劳动合同协议书
2014/09/17 职场文书
小学生思想品德评语
2014/12/31 职场文书
任命书标准格式
2015/03/02 职场文书
go 原生http web 服务跨域restful api的写法介绍
2021/04/27 Golang
Mysql开启外网访问
2022/05/15 MySQL