2 回答
TA贡献1797条经验 获得超4个赞
addLead是一个返回函数的函数。这是使用函数体语法而不是简洁的正文语法的相同内容,这可能更清楚:
export const addLead = (lead) => {
return (dispatch, getState) => {
axios
.post('/api/leads/', lead, tokenConfig(getState))
.then(........)
};
}
所以你会打电话addLead来获得一个lead绑定到它的函数:
const f = addLead("some lead");
...然后酌情使用dispatchand调用它:state
f("dispatch", "state");
addLead旁注:函数返回的结果不返回调用的结果有点奇怪(没有更多上下文)axios。我本来希望它是:
export const addLead = (lead) => (dispatch, getState) =>
axios
.post('/api/leads/', lead, tokenConfig(getState))
.then(........);
这是:
export const addLead = (lead) => {
return (dispatch, getState) => {
return axios
.post('/api/leads/', lead, tokenConfig(getState))
.then(........);
};
};
TA贡献1827条经验 获得超8个赞
是闭包函数。这意味着它需要一个变量并返回一个让您访问该变量的函数。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures
您的代码基本上转化为以下
export const addLead = function(lead) {
return function(dispatch, getState) {
axios
.post('/api/leads/', lead, tokenConfig(getState))
.then()
}
}
添加回答
举报