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 相关文章推荐
javascript HTMLEncode HTMLDecode的完整实例(兼容ie和火狐)
Jun 02 Javascript
js 全兼容可高亮二级缓冲折叠菜单
Jun 04 Javascript
JavaScript中关于indexOf的使用方法与问题小结
Aug 05 Javascript
JavaScript通过join函数连接数组里所有元素的方法
Mar 20 Javascript
React Native之TextInput组件解析示例
Aug 22 Javascript
用vue2.0实现点击选中active其他选项互斥的效果
Apr 12 Javascript
vue实现个人信息查看和密码修改功能
May 06 Javascript
Webpack 4.x搭建react开发环境的方法步骤
Aug 15 Javascript
layer弹出的iframe层在执行完毕后关闭当前弹出层的方法
Aug 17 Javascript
在antd中setFieldsValue和defaultVal的用法
Oct 29 Javascript
浅析JavaScript中的事件委托机制跟深浅拷贝
Jan 20 Javascript
js实现碰撞检测
Jan 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
php通用防注入程序 推荐
2011/02/26 PHP
php 数据库字段复用的基本原理与示例
2011/07/22 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
Js setInterval与setTimeout(定时执行与循环执行)的代码(可以传入参数)
2010/06/11 Javascript
js 距离某一时间点时间是多少实现代码
2013/10/14 Javascript
Javascript玩转继承(三)
2014/05/08 Javascript
jQuery实现鼠标经过图片变亮其他变暗效果
2015/05/08 Javascript
jquery实现横向图片轮播特效代码分享
2015/11/19 Javascript
原生js编写基于面向对象的分页组件
2016/12/05 Javascript
JS实现选定指定HTML元素对象中指定文本内容功能示例
2017/02/13 Javascript
react实现pure render时bind(this)隐患需注意!
2017/03/09 Javascript
jQuery选取所有复选框被选中的值并用Ajax异步提交数据的实例
2017/08/04 jQuery
基于node.js的fs核心模块读写文件操作(实例讲解)
2017/09/10 Javascript
webpack学习教程之前端性能优化总结
2017/12/05 Javascript
PostgreSQL Node.js实现函数计算方法示例
2019/02/12 Javascript
判断文字超过2行添加展开按钮,未超过则不显示,溢出部分显示省略号
2019/04/28 Javascript
基于Node的Axure文件在线预览的实现代码
2019/08/28 Javascript
javascript操作向表格中动态加载数据
2020/08/27 Javascript
[08:54]《一刀刀一天》之DOTA全时刻18:十九支奔赴西雅图队伍全部出炉
2014/06/04 DOTA
[01:03:27]NAVI vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
[01:00:11]DOTA2-DPC中国联赛 正赛 CDEC vs DLG BO3 第一场 2月7日
2021/03/11 DOTA
用Python将动态GIF图片倒放播放的方法
2016/11/02 Python
python中的随机函数random的用法示例
2018/01/27 Python
使用Python实现从各个子文件夹中复制指定文件的方法
2018/10/25 Python
两个元祖T1=('a', 'b'),T2=('c', 'd')使用匿名函数将其转变成[{'a': 'c'},{'b': 'd'}]的几种方法
2019/03/05 Python
Appium+python自动化怎么查看程序所占端口号和IP
2019/06/14 Python
利用Python实现Excel的文件间的数据匹配功能
2020/06/16 Python
详解pytorch tensor和ndarray转换相关总结
2020/09/03 Python
敏捷开发的主要原则都有哪些
2015/04/26 面试题
高中毕业生生活的自我评价
2013/12/08 职场文书
幼儿园家长会欢迎词
2014/01/09 职场文书
机电专业求职信
2014/06/14 职场文书
今日说法观后感
2015/06/08 职场文书
幼儿园安全教育随笔
2015/08/14 职场文书
2019年教师节:送给所有老师的祝福语
2019/09/05 职场文书
Python OpenCV实现传统图片格式与base64转换
2021/06/13 Python