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实现分割提取页面所需内容
May 09 Javascript
javascript dom代码应用 简单的相册[firefox only]
Jun 12 Javascript
IE6中使用position导致页面变形的解决方案(js代码)
Jan 09 Javascript
JavaScript实现Iterator模式实例分析
Jun 09 Javascript
JS数组操作中的经典算法实例讲解
Jul 26 Javascript
jQuery 中msgTips 顶部弹窗效果实现代码
Aug 14 jQuery
Angular表格神器ui-grid应用详解
Sep 29 Javascript
微信小程序textarea层级过高的解决方法
Mar 04 Javascript
小程序云开发之用户注册登录
May 18 Javascript
vue+element实现打印页面功能
May 20 Javascript
如何使用Jquery动态生成二级选项列表
Feb 06 jQuery
layui使用及简单的三级联动实现教程
Dec 01 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获取地址栏信息的代码
2008/10/08 PHP
php Undefined index的问题
2009/06/01 PHP
《PHP编程最快明白》第四讲:日期、表单接收、session、cookie
2010/11/01 PHP
php编写的抽奖程序中奖概率算法
2015/05/14 PHP
PHP随机数 C扩展随机数
2016/05/04 PHP
php实现HTML实体编号与非ASCII字符串相互转换类实例
2016/11/02 PHP
脚本吧 - 幻宇工作室用到js,超强推荐base.js
2006/12/23 Javascript
js中判断Object、Array、Function等引用类型对象是否相等
2012/08/29 Javascript
js多级树形弹出一个小窗口层(非常好用)实例代码
2013/03/19 Javascript
Js可拖拽放大的层拖动特效实现方法
2015/02/25 Javascript
Javascript实现颜色rgb与16进制转换的方法
2015/04/18 Javascript
JavaScript设置表单上传时文件个数的方法
2015/08/11 Javascript
Bootstrap编写一个同时适用于PC、平板、手机的登陆页面
2016/06/30 Javascript
原生javascript实现的ajax异步封装功能示例
2016/11/03 Javascript
Vue2.0表单校验组件vee-validate的使用详解
2017/05/02 Javascript
浅谈Node.js爬虫之网页请求模块
2018/01/11 Javascript
基于vue2.x的电商图片放大镜插件的使用
2018/01/22 Javascript
JavaScript函数定义方法实例详解
2019/03/05 Javascript
elementUI 动态生成几行几列的方法示例
2019/07/11 Javascript
js事件机制----捕获与冒泡机制实例分析
2020/05/22 Javascript
JS轮播图的实现方法2
2020/08/25 Javascript
ES2020让代码更优美的运算符 (?.) (??)
2021/01/04 Javascript
Python常用内置函数总结
2015/02/08 Python
30秒轻松实现TensorFlow物体检测
2018/03/14 Python
pycharm debug功能实现跳到循环末尾的方法
2018/11/29 Python
python scatter函数用法实例详解
2020/02/11 Python
Python configparser模块操作代码实例
2020/06/08 Python
开办大学饮食联盟创业计划书
2014/01/29 职场文书
领导干部考察材料
2014/02/08 职场文书
数学检讨书1000字
2014/02/24 职场文书
会计电算化毕业生自荐信
2014/03/03 职场文书
开工仪式主持词
2014/03/20 职场文书
工商干部先进事迹
2014/05/14 职场文书
电子专业自荐信
2014/07/01 职场文书
2015年前台个人工作总结
2015/04/03 职场文书
2015年网络舆情工作总结
2015/07/24 职场文书