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网页关闭时提醒效果脚本
Oct 22 Javascript
javascript实现日期格式转换
Dec 16 Javascript
jQuery制作简洁的图片轮播效果
Apr 03 Javascript
javascript中CheckBox全选终极方案
May 20 Javascript
javascript常用的方法整理
Aug 20 Javascript
基于canvas实现的绚丽圆圈效果完整实例
Jan 26 Javascript
jquery日历插件e-calendar升级版
Nov 10 Javascript
javascript实现简单的ajax封装示例
Dec 28 Javascript
Angular2 路由问题修复详解
Mar 01 Javascript
微信小程序第三方框架对比 之 wepy / mpvue / taro
Apr 10 Javascript
JS随机密码生成算法
Sep 23 Javascript
vue实现顶部菜单栏
Nov 08 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 AJAX实例根据邮编自动完成地址信息
2008/11/23 PHP
php文本转图片自动换行的方法
2013/03/13 PHP
php中spl_autoload详解
2014/10/17 PHP
PHP图像处理类库及演示分享
2015/05/17 PHP
CI框架集成Smarty的方法分析
2016/05/17 PHP
深入理解php printf() 输出格式化的字符串
2016/05/23 PHP
使用WAMP搭建PHP本地开发环境
2017/05/10 PHP
PHP实现求解最长公共子串问题的方法
2017/11/17 PHP
PHP文件打开关闭及读写操作示例解析
2020/08/06 PHP
JavaScript Prototype对象
2009/01/07 Javascript
JavaScript中的稀疏数组与密集数组[译]
2012/09/17 Javascript
Javascript的数组与字典用法与遍历对象的属性技巧
2012/11/07 Javascript
jQuery仿Excel表格编辑功能的实现代码
2013/05/01 Javascript
js实现弹窗插件功能实例代码分享
2013/12/12 Javascript
Javascript获取当前时间函数和时间操作小结
2014/10/01 Javascript
Bootstrap每天必学之表格
2015/11/23 Javascript
jQuery实现根据滚动条位置加载相应内容功能
2016/07/18 Javascript
BootStrap实现响应式布局导航栏折叠隐藏效果(在小屏幕、手机屏幕浏览时自动折叠隐藏)
2016/11/30 Javascript
js实现贪吃蛇小游戏(容易理解)
2017/01/22 Javascript
JS去除字符串中空格的方法
2017/02/14 Javascript
VUE table表格动态添加一列数据,新增的这些数据不可以编辑(v-model绑定的数据不能实时更新)
2020/04/03 Javascript
python实现12306火车票查询器
2017/04/20 Python
Python实现的简单dns查询功能示例
2017/05/24 Python
Python爬虫天气预报实例详解(小白入门)
2018/01/24 Python
python简单贪吃蛇开发
2019/01/28 Python
python Qt5实现窗体跟踪鼠标移动
2019/12/13 Python
Python django框架开发发布会签到系统(web开发)
2020/02/12 Python
python实现俄罗斯方块小游戏
2020/04/24 Python
Python抖音快手代码舞(字符舞)的实现方法
2021/02/07 Python
详解使用CSS3的@media来编写响应式的页面
2017/11/01 HTML / CSS
Java面试题:请说出如下代码的输出结果
2013/04/22 面试题
签约仪式主持词
2014/03/19 职场文书
广播体操口号
2014/06/18 职场文书
法院干警四风问题个人对照检查材料思想汇报
2014/10/07 职场文书
教师实习自我鉴定总结
2019/08/20 职场文书
面试必问:圣杯布局和双飞翼布局的区别
2021/05/13 HTML / CSS