【发布时间】:2018-07-27 10:37:25
【问题描述】:
有人可以向我解释下面的代码吗?我明白它的作用,但语法很奇怪,它完成了什么?
当我有:
export default ComponentName;
这很简单,但是这个:
export default connect(mapStateToProps)(ComponentName);
它到底是做什么的?它是 ES6-ish 语法吗?它看起来像是带有参数的自调用函数,但是这些参数是如何工作的呢?我难以理解的部分是:
connect(mapStateToProps)(ComponentName);
第一部分connect(mapStateToProps) 很简单——它只是一个带有mapStateToProps 作为参数的connect 函数,但是(ComponentName) 有什么用呢?为什么要导出自调用函数?为什么我们必须在这里传递组件名称?
【问题讨论】:
-
connect是一个柯里化函数。在函数式编程中搜索“currying”,tl;dr 不是在一个函数中接受多个参数并返回一个值,而是一次接受一个参数并返回一个接受另一个参数的函数,依此类推,并且只有返回链上最后一个函数的值。
标签: reactjs function ecmascript-6 redux