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实现twitter puddles算法实例
Dec 06 Javascript
jquery实现简单实用的打分程序实例
Jul 23 Javascript
JavaScript编程学习技巧汇总
Feb 21 Javascript
Jquery Easyui搜索框组件SearchBox使用详解(19)
Dec 17 Javascript
jQuery手指滑动轮播效果
Dec 22 Javascript
vue-hook-form使用详解
Apr 07 Javascript
angular2模块和共享模块详解
Apr 08 Javascript
微信小程序开发问题之wx.previewImage
Dec 25 Javascript
详解关于Vuex的action传入多个参数的问题
Feb 22 Javascript
深入了解JavaScript代码覆盖
Jun 13 Javascript
Javascript执行上下文顺序的深入讲解
Nov 04 Javascript
ajax请求前端跨域问题原因及解决方案
Oct 16 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
NOT NULL 和NULL
2007/01/15 PHP
php 图片上添加透明度渐变的效果
2009/06/29 PHP
PHP封装返回Ajax字符串和JSON数组的方法
2017/02/17 PHP
PHP中file_put_contents追加和换行的实现方法
2017/04/01 PHP
laravel 使用auth编写登录的方法
2019/09/30 PHP
TFDN图片播放器 不错自动播放
2006/10/03 Javascript
js的.innerHTML = &quot;&quot;IE9下显示有错误的解决方法
2013/09/16 Javascript
扩展JS Date对象时间格式化功能的小例子
2013/12/02 Javascript
浅谈Javascript 数组与字典
2015/01/29 Javascript
jquery结婚电子请柬特效源码分享
2015/08/21 Javascript
JavaScript数组的一些奇葩行为
2016/01/25 Javascript
JavaScript在form表单中使用button按钮实现submit提交方法
2017/01/23 Javascript
详解AngularJS ng-class样式切换
2017/06/27 Javascript
基于Bootstrap表单验证功能
2017/11/17 Javascript
vue中引用阿里字体图标的方法
2018/02/10 Javascript
微信小程序实现上传多个文件 超过10个
2020/03/30 Javascript
Javascript异步编程async实现过程详解
2020/04/02 Javascript
在Python程序中进行文件读取和写入操作的教程
2015/04/28 Python
Python实现自动添加脚本头信息的示例代码
2016/09/02 Python
PYTHON基础-时间日期处理小结
2018/05/05 Python
python实现剪切功能
2019/01/23 Python
Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现
2020/04/22 Python
python简单利用字典破解zip文件口令
2020/09/07 Python
利用CSS3的特性改变文本选中时的颜色
2013/09/11 HTML / CSS
html table呈现个人简历以及单元格宽度失效的问题解决
2021/01/22 HTML / CSS
斯图尔特·韦茨曼鞋加拿大官网:Stuart Weitzman加拿大
2019/10/13 全球购物
Shell脚本如何向终端输出信息
2014/04/25 面试题
教育课题研究自我鉴定范文
2013/12/28 职场文书
工厂仓管员岗位职责
2014/01/01 职场文书
《蜗牛》教学反思
2014/02/18 职场文书
安康杯竞赛活动总结
2014/05/05 职场文书
学校班班通实施方案
2014/06/11 职场文书
群众路线问题查摆对照检查材料
2014/10/04 职场文书
六查六看自检自查剖析材料
2014/10/14 职场文书
竞聘演讲报告:基本写作有哪些?附开头范文
2019/10/16 职场文书
一文了解Java动态代理的原理及实现
2022/07/07 Java/Android