【发布时间】:2018-10-09 06:00:28
【问题描述】:
export const loginUser = userData => dispatch => {
dispatch(showLoading(true));
}
这很好用
虽然这会引发错误
export const loginUser = userData => {
dispatch(showLoading(true)); // dispatch undefined
}
如果我理解正确,第一个代码片段相当于
function loginUser(userData) {
// dispatch is available here since its taken as a param for this inner function
return function(dispatch){
dispatch(showLoading(true));
}
}
这意味着 dispatch 在 loginUser 函数中可用。 那为什么第二个代码sn-p中不可用。
【问题讨论】:
-
因为第二个代码只有一个函数,而不是函数返回函数(第一个和最后一个 sn-p 中提到的 2 个函数)。
dispatch将作为 arg 传递给第二个函数,第二个 sn-p 没有第二个函数。 -
等效代码应该返回内部函数
-
您没有在第二个示例中定义调度
-
Action 创建者必须返回一个带有 dispatch arg 的函数。在第二个 sn-p 中它丢失了。这就是你变得不确定的原因。
标签: javascript reactjs ecmascript-6 redux