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 面向对象的5钟写法
Jul 31 Javascript
利用cookie记住背景颜色示例代码
Nov 04 Javascript
jquery获取复选框被选中的值
Apr 10 Javascript
Javascript中arguments对象详解
Oct 22 Javascript
Javascript实现颜色rgb与16进制转换的方法
Apr 18 Javascript
jquery使用each方法遍历json格式数据实例
May 18 Javascript
学习vue.js中class与style绑定
Dec 03 Javascript
js实现简单的获取验证码按钮效果
Mar 03 Javascript
利用angular、react和vue实现相同的面试题组件
Feb 19 Javascript
移动端H5页面返回并刷新页面(BFcache)的方法
Nov 06 Javascript
vue和better-scroll实现列表左右联动效果详解
Apr 29 Javascript
JQuery特殊效果和链式调用操作示例
May 13 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
Symfony2框架创建项目与模板设置实例详解
2016/03/17 PHP
Laravel 5.4前后台分离,通过不同的二级域名访问方法
2019/10/13 PHP
ExtJs 3.1 XmlTreeLoader Example Error
2010/02/09 Javascript
一个简单的jQuery插件制作 学习过程及实例
2010/04/25 Javascript
safari,opera嵌入iframe页面cookie读取问题解决方法
2010/06/23 Javascript
jquery下利用jsonp跨域访问实现方法
2010/07/29 Javascript
使用jquery.upload.js实现异步上传示例代码
2014/07/29 Javascript
firefox浏览器用jquery.uploadify插件上传时报HTTP 302错误
2015/03/01 Javascript
JavaScript性能优化之函数节流(throttle)与函数去抖(debounce)
2016/08/11 Javascript
JavaScript数据结构之数组的表示方法示例
2017/04/12 Javascript
angular2 ng build部署后base文件路径问题详细解答
2017/07/15 Javascript
微信小程序之滚动视图容器的实现方法
2017/09/26 Javascript
VUE-cli3使用 svg-sprite-loader
2018/10/20 Javascript
vue 父组件给子组件传值子组件给父组件传值的实例代码
2019/04/15 Javascript
Layer+Echarts构建弹出层折线图的方法
2019/09/25 Javascript
vue - vue.config.js中devServer配置方式
2019/10/30 Javascript
Vue快速实现通用表单验证功能
2019/12/05 Javascript
在vue中axios设置timeout超时的操作
2020/09/04 Javascript
vue-cli 关闭热更新操作
2020/09/18 Javascript
[32:47]完美世界DOTA2联赛 GXR vs IO 第二场 11.07
2020/11/09 DOTA
python时间整形转标准格式的示例分享
2014/02/14 Python
启动targetcli时遇到错误解决办法
2017/10/26 Python
高质量Python代码编写的5个优化技巧
2017/11/16 Python
加拿大票务网站:Ticketmaster加拿大
2017/07/17 全球购物
Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型
2013/10/30 面试题
学前班教师的自我鉴定
2013/12/05 职场文书
销售主管竞聘书
2014/03/31 职场文书
和谐社区口号
2014/06/19 职场文书
常务副县长“四风”个人对照检查材料思想汇报
2014/10/02 职场文书
学前班幼儿评语大全
2014/12/29 职场文书
个人工作能力自我评价
2015/03/05 职场文书
学校党支部公开承诺书
2015/04/30 职场文书
浅谈node.js中间件有哪些类型
2021/04/29 Javascript
教你如何使用Python实现二叉树结构及三种遍历
2021/06/18 Python
Redis的字符串是如何实现的
2021/10/24 Redis
详解Python内置模块Collections
2022/03/22 Python