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

1、有人提问:

  这段代码是dva的基础代码

1
2
3
4
5
6
7
8
9
10
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//▼补充代码,
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、有人解释:  

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

3、有人给出示例:

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

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

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

posted on   滚动的蛋  阅读(1343)  评论(0编辑  收藏  举报

编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示