这甚至可能更像是一个通用的 Javascript(可能是 es6)问题,但在这里让我们看看它是如何发挥作用的。
我每天都会遇到这种类型的语法,并且开始为我不明白这些东西在幕后如何工作而感到恼火:
const createStoreWithMiddleware = applyMiddleware(reduxThunk)(createStore)
我可以看到 applyMiddleware 显然是一个函数,在这个例子中,它以 reduxThunk 作为参数。但是,我不知道 createStore 在它旁边的括号中在做什么。
这个例子也是如此,我对 UserList 发生的事情感到困惑:
export default connect(mapStateToProps)(UserList)
谁能向我解释这里发生了什么?对两者的解释将不胜感激,因为它们都用于不同的目的,并且最终成为一种表达。
这:
const createStoreWithMiddleware = applyMiddleware(reduxThunk)(createStore)
与此完全相同:
const temp = applyMiddleware(reduxThunk);
const createStoreWithMiddleware = temp(createStore);
(但没有temp
变量。)
代码applyMiddleware
使用参数调用reduxThunk
;applyMiddleware
返回一个函数。然后,代码使用createStore
参数调用该函数。
这是一个没有库或类似库的简单示例:
function createAdder(valueToAdd) {
return function(valueToAddTo) {
return valueToAddTo + valueToAdd;
};
}
// Doing it all at once
const result1 = createAdder(5)(10);
console.log(result1); // 15
// Doing it step by step
const addFiveTo = createAdder(5);
const result2 = addFiveTo(10);
console.log(result2); // 15
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句