【发布时间】:2016-08-20 02:07:46
【问题描述】:
所以在我的 React 组件中,我有这个:
this.props.updateAlertCallback('error', ERROR_MESSAGE)
我的updateAlertCallback 操作是:
export const updateAlert = (alert, message) => {
return {
type: 'UPDATE_ALERT',
alert,
message
}
}
export const updateAlertCallback = (alert, message) => {
return dispatch => {
return dispatch(updateAlert(alert, message)).then(() => {
console.log('Done!');
});
}
}
我收到以下错误:Uncaught TypeError: dispatch(...).then is not a function
updateAlert 运行完成后记录某些内容的正确方法是什么?
【问题讨论】:
-
这有很多问题。首先,不清楚您要完成什么。此外,您分配
data,然后立即检查它是否真实。它总是因为你刚刚分配它。然后updateAlert不返回任何内容。它应该返回一个动作,或者如果你需要 redux thunk 来做某事,它应该返回一个函数。 -
我还注意到您正在调用回调函数,但由于您的所有代码都是同步的(您无需等待任何内容),因此根本不需要回调。
-
嘿@DDS,我继续用我的最新情况更新了这个问题。我试图在调用 this.props.updateAlert 之后从我的 React 组件启动回调,而不是在操作中启动回调。我想我越来越接近了 - 你对这个更新的代码有什么想法吗?
-
为什么需要回调?
-
在
updateAlert运行完成后调用函数的正确方法是:this.props.updateAlert('hi'); theFunction();调用后运行即可。
标签: reactjs callback redux redux-thunk