• React connect()() 双括号 --柯里化写法


    1、有人提问:

      这段代码是dva的基础代码

    import React from 'react';
    import { connect } from 'dva';
    
    function IndexPage() {
      return (
        <div> this is a div </div>
      );
    }
    
    export default connect()(IndexPage);

      【请问】最后一行这个 connect()(IndexPage) 怎么理解?
      还要请教:这两个括号的在一起的写法是es6语吗?(我在阮一峰的es6指南中没找到这个语法说明,我要看箭头函数一章,还是到哪章去了解这个()()
      老司机能提供一个纯js的双括号函数案例吗?

      p.s.
      我思考了一下:之前见过 function(){}() 这样的最后放一个括号表示立即执行。请问和上边的这个有相通的地方吗?

      谢谢您前来科普帮助,感谢老司机指路----O(∩_∩)O

    //▼补充代码,
    import React from 'react';
    import { connect } from 'dva';
    import { Table, Pagination, Popconfirm, Button } from 'antd';
    import { routerRedux } from 'dva/router';
    
    function stuIndexPage({ dispatch, list: dataSource, loading, total, page: current }) {
      return (
        <div> index 首页 </div>
      );
    }
    
    function mapStateToProps({ stuIndexPage }){
        return {
              stuIndexPage
        };
    }
    //▼还有这个,两个括号都传参了,搞不太懂是什么作用
    export default  connect(mapStateToProps)(stuIndexPage);

    2、有人解释:  

    connect()(IndexPage)
    // =>
    const bindToComponent = connect()
    export default bindToComponent(IndexPage)
    export default connect(从 model 的 state 中获取数据)(要将数据绑定到哪个组件)
    connect将 model 和 component 串联起来

    3、有人给出示例:

      这个叫做柯里化写法,学习了

    let add = function(x){
        return function(y){
            return x+y;
        }
    }
    add(3)(4); //7
    

      以上内容也解决了我的疑惑
     

  • 相关阅读:
    linux下最大文件数
    Apache实现Web Server负载均衡
    linux环境变量
    iptables用法
    read 不回显的方法
    Linux间的进程通信;以及子进程的创建
    Linux总结
    自实现部分string类的功能
    C语言 (内存) 四道经典题目
    STL 容器(vector 和 list )
  • 原文地址:https://www.cnblogs.com/irobotzz/p/12292283.html
Copyright © 2020-2023  润新知