使用带有 jQuery.ajax 的 redux-thunk

const loadUser = userId => dispatch => {
    dispatch({ type: 'USER_LOADING' });
    $.ajax('/users/' + userId, {
        type: 'GET',
        dataType : 'json'
    }).done(response => {
        dispatch({ type: 'USER_LOADED', user: response });
    }).fail((xhr, status, error) => {
        dispatch({ type: 'USER_LOAD_ERROR', status, error });
    });
};

使用,像任何其他动作创建者一样发送:

store.dispatch(loadUser(123));

这将导致调度初始 USER_LOADING 动作,可用于显示加载指示符(如果需要),并且在收到响应后,将分派 USER_LOADED 动作或 USER_LOAD_ERROR 动作,具体取决于结果。$.ajax 请求。