react中箭头函数的问题


export const updateStoreName = (storeNameIn) => (dispatch, getState) => {

}

const updateStoreComm = () => {

}

这是react+redux中的两种箭头函数的写法,这两种的写法有什么区别啊?有时候总是搞不明白
阅读 4.4k
4 个回答

第一种相当于这样:


    export const updateStoreName = (storeNameIn) => {
        return (dispatch, getState) => {
        
        }
    }

1、ES6 允许使用“箭头”(=>)定义函数。
2、如果箭头函数不需要参数或需要多个参数,就使用一个圆括号代表参数部分。
3、如果箭头函数的代码块部分多于一条语句,就要使用大括号将它们括起来,并且使用return语句返回。
4、箭头函数可以与变量解构结合使用。

var f = v => v;
//等同于:
var f = function(v) {
  return v;
};

var f = () => 5;
// 等同于
var f = function () { return 5 };

var sum = (num1, num2) => num1 + num2;
// 等同于
var sum = function(num1, num2) {
  return num1 + num2;
};

const full = ({ first, last }) => first + ' ' + last;
//等同于
function full(person) {
  return person.first + ' ' + person.last;
}

你给出的代码,第一种和第二种的区别是 箭头函数返回的值为一个箭头函数,就是箭头函数嵌套使用了。

//第一种
export const updateStoreName = function(storeNameIn){
    return function (dispatch, getState) {

    }
}
//第二种
const updateStoreComm =function () {
}
推荐问题
宣传栏