React-Redux: Actions must be plain objects. Use custom middleware for async actions
You have to dispatch after the async request ends. This would work: export function bindComments(postId) { return function(dispatch) { return API.fetchComments(postId).then(comments => { // dispatch dispatch({ type: BIND_COMMENTS, comments, postId }); }); }; }