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的一种模块模式
Sep 08 Javascript
js 字符串转化成数字的代码
Jun 29 Javascript
Javascript的常规数组和关联数组对比小结
May 24 Javascript
JavaScript运行时库属性一览表
Mar 14 Javascript
在JavaScript中处理时间之getHours()方法的使用
Jun 10 Javascript
js实现鼠标拖动功能
Mar 20 Javascript
jQuery实现的回车触发按钮事件功能示例
Mar 25 jQuery
Vue 实现展开折叠效果的示例代码
Aug 27 Javascript
微信小程序实现多选功能
Nov 04 Javascript
Vue的H5页面唤起支付宝支付功能
Apr 18 Javascript
Vue中axios的封装(报错、鉴权、跳转、拦截、提示)
Aug 20 Javascript
关于layui 实现点击按钮添加一行(方法渲染创建的table)
Sep 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中使用临时表查询数据的一个例子
2013/02/03 PHP
php加密解密实用类分享
2014/01/07 PHP
ECMall支持SSL连接邮件服务器的配置方法详解
2014/05/19 PHP
Laravel 5框架学习之表单
2015/04/08 PHP
Windows2003下php5.4安装配置教程(Apache2.4)
2016/06/30 PHP
PHP面向对象五大原则之依赖倒置原则(DIP)详解
2018/04/08 PHP
js事件冒泡实例分享(已测试)
2013/04/23 Javascript
Javascript中的String对象详谈
2014/03/03 Javascript
jQuery实现的简洁下拉菜单导航效果代码
2015/08/26 Javascript
javascript下拉列表中显示树形菜单的实现方法
2015/11/17 Javascript
jquery无限级联下拉菜单简单实例演示
2015/11/23 Javascript
使用smartupload组件实现jsp+jdbc上传下载文件实例解析
2017/01/05 Javascript
echarts3 使用总结(绘制各种图表,地图)
2017/01/05 Javascript
通过vue-cli来学习修改Webpack多环境配置和发布问题
2017/12/22 Javascript
详解Vue webapp项目通过HBulider打包原生APP
2018/06/29 Javascript
JavaScript canvas基于数组生成柱状图代码实例
2020/03/06 Javascript
vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据操作
2020/07/31 Javascript
vue中v-model对select的绑定操作
2020/08/31 Javascript
[16:04]DOTA2海涛带你玩炸弹 9月5日更新内容详解
2014/09/05 DOTA
基于Python Shell获取hostname和fqdn释疑
2016/01/25 Python
python模拟Django框架实例
2016/05/17 Python
python使用itchat库实现微信机器人(好友聊天、群聊天)
2018/01/04 Python
解决python中使用plot画图,图不显示的问题
2018/07/04 Python
python web自制框架之接受url传递过来的参数实例
2018/12/17 Python
Django实现学生管理系统
2019/02/26 Python
详解python--模拟轮盘抽奖游戏
2019/04/12 Python
python从ftp获取文件并下载到本地
2020/12/05 Python
Python 利用flask搭建一个共享服务器的步骤
2020/12/05 Python
有针对性的求职自荐信
2013/11/14 职场文书
交通安全教育制度
2014/02/02 职场文书
创建绿色社区汇报材料
2014/08/22 职场文书
经济纠纷起诉状
2015/05/20 职场文书
运动会闭幕式致辞
2015/07/29 职场文书
幼儿园2016年感恩节活动总结
2016/04/01 职场文书
CSS3中Animation实现简单的手指点击动画的示例
2021/07/15 HTML / CSS
Redis之RedisTemplate配置方式(序列和反序列化)
2022/03/13 Redis