React-Redux Action链式调用
在进行React-Redux实践时,碰到下面这样一个场景,执行一个UI操作需要链式次序分发多个Action。
例如,删除一个post时,需要通过axios删除选中的post,然后通过axios获取所有post以刷新post列表,最后将选中的post id设为空。 前两个action为异步action,后一个action为同步action。
下面就对我的实践进行一下总结。
实现 PostActions.js:
...... export const handleSelectIdChange = selectedId => ({ type: types.UPDATE_SELECTED_ID, payload: { data: selectedId } }); ...... export const getPosts = () => { return dispatch => { dispatch(getPostsStarted()); return axios .get('/api/posts') .then(res => { dispatch(getPostsSuccess(res.data)); }) .catch(err => { dispatch(getPostsFailure(err.message)); }); }; } export const getPostsSuccess = posts => ({ type: types.GET_POSTS_SUCCESS, payload: { data: posts } }); export const getPostsStarted = () => ({ type: types.