我正在阅读this article有关创建react / redux应用程序的信息 并在接下来的部分中感到困惑,尤其是我用红色圈出的部分。这里到底发生了什么?我对所使用的语法不是很熟悉,我以前从未见过双“ =>”。如果您能够解释此代码块,将不胜感激!
谢谢
答案 0 :(得分:2)
不确定您对Redux的了解程度如何,但是您为要记录在商店中的每个任务创建了动作,这些动作是使用reducer处理的。
顾名思义,createAction函数创建动作,因此不必一遍又一遍地重写相同的代码,您可以调用它,传递您要创建的动作的名称。在此示例中,正在创建的动作称为SET_USER_ID
箭头功能=>
是最新的JavaScript(称为ES6)引入的新语法。 You can read about it here。箭头函数使您可以使用较短的语法来定义函数,并且还可以解决范围问题。
最后一行将在您的react组件内使用以调用操作。即
<Button onClick={ () => dispatch(setUserId('abcd123')) } />
我花了一些时间来了解redux,如果您还没有看过Dan Abramov's tutorials,那么我强烈推荐他们。他是redux的创造者。另外,开始构建自己的redux应用程序,这是学习的最佳方法。
答案 1 :(得分:2)
“双“ =>”不是我以前见过的。”
在本特定示例中,这称为currying是一种转换接受多个参数的函数的求值的技术 类型,(有效载荷,元)。在这里,该函数接受第一个参数(类型),并返回一个接受第二个参数(有效载荷,元)的函数,依此类推。
示例:const sum = x => y => x + y;
sum(2)(1); //返回3
总和(2); //返回函数y => 2 + y
Currying是将具有多个参数的函数转换为只有一个参数的函数序列的过程-偏向于部分应用
答案 2 :(得分:0)
首先,您调用createAction并传递类型(SET_USER_ID),然后调用setUserId并传递有效负载(在这种情况下为id)。 “ Meta”是可选参数。 起初很难把头缠起来。 您也可以这样写
const newOPfunction = (type) => {
const newFunc = (id) => {
return {type, id}
}
return newFunc;
}
但是看起来并不漂亮