const fetch = url => dispatch => {
// ...
}
export const fetchQuestions = tag => (dispatch) => {
return dispatch(fetch(tag));
};
dispatch
函数中的fetch
是什么? url
是第一个单参数fetch
函数。但这里的dispatch
是什么?
答案 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)
dispatch
是url => ...
函数返回的函数的第一个和单个参数。使用普通函数语法,它将是
const fetch = function(url) {
return function(dispatch) {...}
}
答案 2 :(得分:1)
它是编写returns another function
函数的一种较短方式。参数url
和dispatch
是 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) {
// ...
}
}