【发布时间】:2018-06-07 15:22:38
【问题描述】:
我在链接分配有参数的承诺时遇到问题:
这是我的初始链:
dispatchTermsCondition(history, dispatch)
.then((history, dispatch)=>
dispatchSetPrivacy(history, dispatch)
)
.then(()=>
dispatcherUserTermsPrivacy(history,dispatch, getState,response.data.tj_id)
);
第一个链工作正常,第二个链找不到我发送给它的参数。 这是我的第二个函数(dispatchSetPrivacy):
export function dispatchSetPrivacy(history, dispatch) {
return axios.get("some url")
.then((response) => {
dispatch({
type: SET_PRIVACY,
payload: {
privacy: {id: response.data.id, content: response.data.content, version: response.data.version }
}
});
}).catch(function(response){
console.log(response);
history.push("/error");
});
}
这是我得到的错误:
TypeError: dispatch is not a function 在 bundle.js:76071
它发生在 dispatchSetPrivacy 中。
有什么想法吗?
【问题讨论】:
-
首先,我想说您在 dispatchSetPrivacy 和 dispatcherUserTermsPrivacy 之前缺少“returns”语句。
-
then回调只接受一个参数。仅使用history =>而不是(history, dispatch)=>并从周围环境中获取dispatch。 -
@Gnujeremie 不,返回值隐含在没有块体的箭头函数中
-
可以显示周边代码吗?任何导入、参数声明、初始化等?
-
@DominicTobias 我的错,你是对的,请添加它作为答案,我会接受它
标签: javascript ecmascript-6 promise axios