链式箭头函数语法

时间:2017-07-17 14:44:47

标签: javascript reactjs

const fetch = url => dispatch => {
  // ...
}

export const fetchQuestions = tag => (dispatch) => {
  return dispatch(fetch(tag));
};

dispatch函数中的fetch是什么? url是第一个单参数fetch函数。但这里的dispatch是什么?

4 个答案:

答案 0 :(得分:5)

这相当于一个函数返回另一个函数。即此

const fetch = url => dispatch => {
    // ...
}

相当于

const fetch = function(url) {
    return function(dispatch) {
        // ... 
    }
}

同样这个

export const fetchQuestions = tag => (dispatch) => {
  return dispatch(fetch(tag));
};

相当于

export const fetchQuestions = function(tag) {
    return function(dispatch) {
        return dispatch(fetch(tag));
    }
};

答案 1 :(得分:1)

dispatchurl => ...函数返回的函数的第一个和单个参数。使用普通函数语法,它将是

const fetch = function(url) {
    return function(dispatch) {...}
}

答案 2 :(得分:1)

它是编写returns another function函数的一种较短方式。参数urldispatch curryed function 的参数。与ES5等效的箭头函数语法将是

function fetch(url) {
    return function(dispatch) {
         ....
    }
}

或使用箭头语法

const fetch = (url) => {
    return (dispatch) => {
        // ... 
    }
}

同样,您可以将fetchQuestion写为

export function fetchQuestions(tag) {
     return function(dispatch){
            return dispatch(fetch(tag));
     }
}

或使用箭头语法

export const fetchQuestions = (tag) => {
    return (dispatch) =>  {
        return dispatch(fetch(tag));
    }
};

答案 3 :(得分:0)

fetch命名的函数表达式,它接受url参数并返回一个带dispatch参数的新函数。

您可以使用传统的函数语法重写:

const fetch = function (url) {
  return function(dispatch) {
    // ...
  }
}