I have an async action, which fetch data from REST API:
export const list = (top, skip) => dispatch => {
    dispatch({ type: 'LIST.REQUEST' });
    $.get(API_URL, { top: top, skip: skip })
        .done((data, testStatus, jqXHR) => {
            dispatch({ type: 'LIST.SUCCESS', data: data });
        });
};
A sync action, which changes skip state:
export const setSkip = (skip) => {
    return {
        type: 'LIST.SET_SKIP',
        skip: skip
    };
};
Initial state for top = 10, skip = 0. In component:
class List extends Component {
    componentDidMount() {        
        this.list();
    }
    nextPage() {
        let top = this.props.list.top;
        let skip = this.props.list.skip;
        // After this 
        this.props.onSetSkip(skip + top);
        // Here skip has previous value of 0.
        this.list();
        // Here skip has new value of 10.
    }
    list() {
        this.props.List(this.props.list.top, this.props.list.skip);
    }
    render () {
        return (
            <div>
                <table> ... </table>
                <button onClick={this.nextPage.bind(this)}>Next</button>
            </div>
        );
    }
}
When button Next at first time clicked, value of skip which uses async action not changed.
How I can to dispatch action after sync action?
 
     
     
     
     
     
    