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 相关文章推荐
js 实现图片预加载(js操作 Image对象属性complete ,事件onload 异步加载图片)
Mar 25 Javascript
javascript利用控件对windows的操作实现原理与应用
Dec 23 Javascript
JQuery的read函数与js的onload不同方式实现
Mar 18 Javascript
JavaScript的内存释放问题详解
Jan 21 Javascript
js实现类似新浪微博首页内容渐显效果的方法
Apr 10 Javascript
在AngularJS应用中实现一些动画效果的代码
Jun 18 Javascript
Uploadify上传文件方法
Mar 16 Javascript
BootStrap Table 分页后重新搜索问题的解决办法
Aug 08 Javascript
Bootstrap栅格系统使用方法及页面调整变形的解决方法
Mar 10 Javascript
javascript实现的图片预览和上传功能示例【兼容IE 9】
May 01 Javascript
JavaScript ES6 Class类实现原理详解
May 08 Javascript
html中两种获取标签内的值的方法
Jun 16 jQuery
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
解析PHP跳出循环的方法以及continue、break、exit的区别介绍
2013/07/01 PHP
PHP实现的增强性mhash函数
2015/05/27 PHP
微信支付扫码支付php版
2016/07/22 PHP
php使用GD2绘制几何图形示例
2017/02/15 PHP
PHP多维数组指定多字段排序的示例代码
2018/05/16 PHP
extjs DataReader、JsonReader、XmlReader的构造方法
2009/11/07 Javascript
修改file按钮的默认样式实现代码
2013/04/23 Javascript
JavaScript获取FCK编辑器信息的具体方法
2013/07/12 Javascript
nodejs实现黑名单中间件设计
2014/06/17 NodeJs
JS+CSS实现表格高亮的方法
2015/08/05 Javascript
JavaScript实现可拖拽的拖动层Div实例
2015/08/05 Javascript
JavaScript中数组的合并以及排序实现示例
2015/10/24 Javascript
Markdown与Bootstrap相结合实现图片自适应属性
2016/05/04 Javascript
javascript使用递归算法求两个数字组合功能示例
2017/01/03 Javascript
nodejs个人博客开发第二步 入口文件
2017/04/12 NodeJs
xmlplus组件设计系列之下拉刷新(PullRefresh)(6)
2017/05/03 Javascript
Angular2使用SVG自定义图表(条形图、折线图)组件示例
2019/05/10 Javascript
vue element upload组件 file-list的动态绑定实现
2019/10/11 Javascript
解决Vue打包上线之后部分CSS不生效的问题
2019/11/12 Javascript
用Node写一条配置环境的指令
2019/11/14 Javascript
JS实现基本的网页计算器功能示例
2020/01/16 Javascript
[36:37]2014 DOTA2华西杯精英邀请赛5 24 VG VS iG
2014/05/25 DOTA
[01:09:19]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第二场 2月28日
2021/03/11 DOTA
PHP webshell检查工具 python实现代码
2009/09/15 Python
keras获得model中某一层的某一个Tensor的输出维度教程
2020/01/24 Python
python有序查找算法 二分法实例解析
2020/02/18 Python
keras训练浅层卷积网络并保存和加载模型实例
2020/07/02 Python
关于Python 解决Python3.9 pandas.read_excel(‘xxx.xlsx‘)报错的问题
2020/11/28 Python
CSS3伪类选择器:nth-child()
2009/04/02 HTML / CSS
携程旅行网:中国领先的在线旅行服务公司
2017/02/17 全球购物
后勤人员自我评价怎么写
2013/09/19 职场文书
片区教研活动总结
2014/07/02 职场文书
计划生育证明格式范本
2014/09/12 职场文书
人事局接收函
2015/01/30 职场文书
2015年保险业务员工作总结
2015/05/27 职场文书
写给医护人员的一封感谢信
2019/09/16 职场文书