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 相关文章推荐
JQuery 国际象棋棋盘 实现代码
Jun 26 Javascript
jQuery 1.7.2中getAll方法的疑惑分析
May 23 Javascript
jQuery prev ~ siblings选择器使用介绍
Aug 09 Javascript
Javascript代码实现仿实例化类
Apr 03 Javascript
JavaScript中利用Array和Object实现Map的方法
Jul 27 Javascript
vue2导航根据路由传值,而改变导航内容的实例
Nov 10 Javascript
微信小程序录音与播放录音功能
Dec 25 Javascript
vue组件与复用详解
Apr 08 Javascript
实例详解带参数的 npm script
May 28 Javascript
vue实现商品列表的添加删除实例讲解
May 14 Javascript
详解React路由传参方法汇总记录
Nov 29 Javascript
vue+element_ui上传文件,并传递额外参数操作
Dec 05 Vue.js
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
overlord人气高涨,却被菲利普频繁举报,第四季很难在国内上映
2020/05/06 日漫
php下过滤HTML代码的函数
2007/12/10 PHP
php 编写安全的代码时容易犯的错误小结
2010/05/20 PHP
yii操作cookie实例简介
2014/07/09 PHP
magento后台无法登录解决办法的两种方法
2016/12/09 PHP
thinkPHP5框架auth权限控制类与用法示例
2018/06/12 PHP
超级强大的表单验证
2006/06/26 Javascript
JQuery.closest(),parent(),parents()寻找父结点
2012/02/17 Javascript
三种取消选中单选框radio的方法
2014/09/09 Javascript
HTML5使用DeviceOrientation实现摇一摇功能
2015/06/05 Javascript
jquery插件方式实现table查询功能的简单实例
2016/06/06 Javascript
JS全局变量和局部变量最新解析
2016/06/24 Javascript
如何制作幻灯片(代码分享)
2017/01/06 Javascript
浅析jsopn跨域请求原理及cors(跨域资源共享)的完美解决方法
2017/02/06 Javascript
基于JavaScript实现瀑布流效果
2017/03/29 Javascript
JavaScript html5 canvas实现图片上画超链接
2017/10/20 Javascript
angularjs使用div模拟textarea文本框的方法
2018/10/02 Javascript
python实现类似ftp传输文件的网络程序示例
2014/04/08 Python
python实现自动发送邮件
2018/06/20 Python
python实现顺序表的简单代码
2018/09/28 Python
使用celery执行Django串行异步任务的方法步骤
2019/06/06 Python
Python基础之函数基本用法与进阶详解
2020/01/02 Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
2020/02/29 Python
Python matplotlib修改默认字体的操作
2020/03/05 Python
解决python ThreadPoolExecutor 线程池中的异常捕获问题
2020/04/08 Python
Pandas之read_csv()读取文件跳过报错行的解决
2020/04/21 Python
Miller Harris官网:英国小众香水品牌
2020/09/24 全球购物
解释一下钝化(Swap out)
2016/12/26 面试题
小学校长先进事迹材料
2014/05/13 职场文书
招标承诺书
2014/08/30 职场文书
公务员群众路线专题民主生活会发言材料
2014/09/17 职场文书
投标单位介绍信
2015/05/05 职场文书
2016年秋季开学典礼新闻稿
2015/11/25 职场文书
如何在CocosCreator里画个炫酷的雷达图
2021/04/16 Javascript
vue-element-admin项目导入和导出的实现
2021/05/21 Vue.js
javascript之Object.assign()的痛点分析
2022/03/03 Javascript