Я использую такой редукционный thunk в машинописи:
//store
export const thunkCreateArticle = (articleCreateView: ArticleCreateView):
ThunkAction<void, ArticleState, BlogClient, Action<string>> => async (dispatch, _, api) => {
const article = await api.createArticle(articleCreateView);
dispatch({
payload: article,
type: CREATE_ARTICLE,
});
};
//component
const mapDispatchToProps = (dispatch: ThunkDispatch<{}, {}, any>): DispatchProps => {
return {
addArticle: async (add: v.ArticleCreateView) => {
dispatch(thunkCreateArticle(add));
}
}
}
Я хотел бы ждать dispatch
в addArticle
в mapDispatchToProps
, чтобы я мог сделать что-то ПОСЛЕ addArticle
завершенного и обрабатывать ошибки с помощью try-catch. Все решения, которые я нашел для этого, используют глобальный обработчик ошибок, который является ужасным IMO. Мой клиент с состоянием, поэтому я использую дополнительный аргумент из thunk, чтобы «внедрить» его.