我仍然在使用react和redux开始,现在我遵循了这个tutorial并使用此middleware进行调度。我想知道如何在第一个之后再进行另一次调度(链接它)?我现在有这样的事情。
fetchData() {
const { dispatch } = this.props;
const action = PageActions.fetchPage({slug: this.props.params.slug});
dispatch(action);
}
并想知道我是否可以dispatch(action).then(...)
但是dispatch
的返回总是未定义的。这可能吗?
答案 0 :(得分:3)
如果您想在动作创建者中使用异步操作,则需要使用中间件。推荐的中间件是thunk
。
关于它的使用和适当的情况,Stack上有一篇很好的帖子。 Stack Overflow Async Actions
这将允许您从单个操作中分派许多操作。但是,如果你想要"链"一起执行操作,您只需在第一个操作定义的末尾调度第二个操作。
即
function getBookings() {
return (
RequestHelper.fetchEntities(Routes.bookings.all, {}, queryParams)
.then(res => dispatch(getBookingsSuccess(res));
)
}
...
function getBookingsSuccess(data) {
dispatch(showSuccess());
}