react 父子组件之间通讯props


Posted in Javascript onSeptember 08, 2018

实现父子组件双向数据流整体的思路是:

1,父组件可以向子组件传递props,props中带有初始化子组件的数据,还有回调函数

2,子组件的state发生变化时,在子组件的事件处理函数中,手动触发父函数传递进来的回调函数,同时时将子组件的数据传递回去(有时间研究)

父组件

父组件中定义一个函数,包含一个props的参数,函数内利用super(props)传递给子组件,this.state中用于定义本页面中要用到的以及要传递给子组件的变量。

父组件的render函数中利用<Table list={this.state.list}/>此种形式传递给子组件

(ps:此例子中也包含组件之间的嵌套,同时组件的名称开头字母必须大写,不然会报错)

import React from 'react';
import Footer from './footer.js'
import Table from './table.js'

class pagedemo extends React.Component {
 constructor(props) {
  super(props);
  this.state = {
   list: [{
    'id':'1',
    'title':'123',
    'time':'2017',
    'person':'cheny0815',
    'type':'type',
    'operation':'operation'
   },{
    'id':'2',
    'title':'456',
    'time':'2017',
    'person':'cheny0815',
    'type':'type',
    'operation':'operation'
   },{
    'id':'3',
    'title':'789',
    'time':'2017',
    'person':'cheny0815',
    'type':'type',
    'operation':'operation'
   }]
  }
 }
 render() {
  let list = this.state.list;
  return (
   <div className="content">
    <div className="content_main">
      <Table list={list}/> //组件之间的通讯
    </div>
    <Footer /> //组件嵌套
   </div>
  );
 }
}

export default pagedemo;

子组件(table.js)

子组件调用父组个传递过来的参数,并进行传值

import React from 'react';

function table(props) {
 console.log(props);
 return (
  <div className="table_main">
   <table>
     <tbody>
       <tr className="first_tr">
        <td>内容</td>
        <td>发起人</td>
        <td>类型</td>
        <td>时间</td>
        <td>操作</td>
       </tr>
       {
        props.list.map(function(name){ //接受父组件传递过来的值并进行处理
         return (
           <tr key={name.id}>
            <td>{name.title}</td>
            <td>{name.person}</td>
            <td>{name.type}</td>
            <td>{name.time}</td>
            <td>{name.operation}</td>
           </tr>
         )
        })
       }
     </tbody>
   </table>
  </div>
 )
}

export default table;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
DOM 基本方法
Jul 18 Javascript
基于jQuery实现的水平和垂直居中的div窗口
Aug 08 Javascript
Javascript创建自定义对象 创建Object实例添加属性和方法
Jun 04 Javascript
JavaScript中常见获取元素的方法汇总
Mar 04 Javascript
浅谈js对象属性 通过点(.) 和方括号([]) 的不同之处
Oct 29 Javascript
jquery获取select,option所有的value和text的实例
Mar 06 Javascript
jQuery动态产生select option下拉列表
Mar 15 Javascript
js的函数的按值传递参数(实例讲解)
Nov 16 Javascript
vue 实现的树形菜的实例代码
Mar 19 Javascript
使用ThinkJs搭建微信中控服务的实现方法
Aug 08 Javascript
在vue中实现清除echarts上次保留的数据(亲测有效)
Sep 09 Javascript
原生js+canvas实现验证码
Nov 29 Javascript
js代码规范之Eslint安装与配置详解
Sep 08 #Javascript
vue弹窗插件实战代码
Sep 08 #Javascript
浅谈从React渲染流程分析Diff算法
Sep 08 #Javascript
详解Webpack-dev-server的proxy用法
Sep 08 #Javascript
详解Ubuntu安装angular-cli遇到的坑
Sep 08 #Javascript
JavaScript实现JSON合并操作示例【递归深度合并】
Sep 07 #Javascript
Bootstrap-table使用footerFormatter做统计列功能
Sep 07 #Javascript
You might like
ThinkPHP中的系统常量和预定义常量集合
2014/07/01 PHP
php实现websocket实时消息推送
2018/03/30 PHP
thinkPHP5框架路由常用知识点汇总
2019/09/15 PHP
laravel 实现关闭CSRF(全部关闭、部分关闭)
2019/10/21 PHP
javascript之函数直接量(function(){})()
2007/06/29 Javascript
扩展JavaScript功能的正确方法(译文)
2012/04/12 Javascript
js查错流程归纳
2012/05/04 Javascript
bootstrap table 服务器端分页例子分享
2015/02/10 Javascript
自己编写的支持Ajax验证的JS表单验证插件
2015/05/15 Javascript
jQuery文件上传控件 Uploadify 详解
2016/06/20 Javascript
vue2.0构建单页应用最佳实战
2017/04/01 Javascript
vue Element-ui input 远程搜索与修改建议显示模版的示例代码
2017/10/19 Javascript
vue引入新版 vue-awesome-swiper插件填坑问题
2018/01/25 Javascript
python3中zip()函数使用详解
2018/06/29 Python
在matplotlib的图中设置中文标签的方法
2018/12/13 Python
pyqt5实现按钮添加背景图片以及背景图片的切换方法
2019/06/13 Python
Django--权限Permissions的例子
2019/08/28 Python
Python通过Manager方式实现多个无关联进程共享数据的实现
2019/11/07 Python
python中数字是否为可变类型
2020/07/08 Python
python 实现非极大值抑制算法(Non-maximum suppression, NMS)
2020/10/15 Python
EM Cosmetics官网:由彩妆大神Michelle Phan创办的独立品牌
2020/04/27 全球购物
艺术爱好者的自我评价分享
2013/10/08 职场文书
博士生入学考试推荐信
2013/11/17 职场文书
优秀毕业生求职信范文
2014/01/02 职场文书
销售业务员岗位职责
2014/01/29 职场文书
幼儿园法制宣传日活动总结
2014/11/01 职场文书
2014年幼儿园后勤工作总结
2014/11/10 职场文书
考研英语复习计划
2015/01/19 职场文书
元宵节晚会主持词
2015/07/01 职场文书
《少年闰土》教学反思
2016/02/18 职场文书
创业计划书之健康营养产业
2019/10/15 职场文书
golang中实现给gif、png、jpeg图片添加文字水印
2021/04/26 Golang
k-means & DBSCAN 总结
2021/04/27 Python
Python入门之使用pandas分析excel数据
2021/05/12 Python
java项目构建Gradle的使用教程
2022/03/24 Java/Android
zabbix如何添加监控主机和自定义监控项
2022/08/14 Servers