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); |
标签:
node
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
以上内容也解决了我的疑惑