bindActionCreators简要概述

bindActionCreators是redux的一个自带函数,作用是将单个或多个ActionCreator转化为dispatch(action)的函数集合形式。

开发者不用再手动dispatch(actionCreator(type)),而是可以直接调用方法。

可以实现简化书写,减轻开发的负担。

例如:

return {
        // 当触发addNews时,dispatch会执行异步action
        addNews(){
            dispatch(async (a)=>{
                // console.log(a == dispatch);// false dispatch
                await axios.post("http://127.0.0.1/news",{
                    newsTitle:this.refs.newsTitle.value,
                    newsHref:this.refs.newsHref.value
                });
                this.props.getNews();
            })
        },
        getNews(){
            dispatch(async (b)=>{
                console.log(b)
                // 获取新闻列表,并将新闻列表放到仓库状态中。
                const {data} = await axios.get("http://127.0.0.1/news");
                // dispatch(changeNewsList(data.newsList))
                dispatch(changeNewsList(data.newsList))
            })
        }
    }
利用bindActionCreators:
 return {
        newsList:state.news.newsList
    }
}
// 操作状态。
function mapDispatchToProps(dispatch) {

    return bindActionCreators(newsCreatore,dispatch);
}
通过actions对象调用方法,就可以dispatch所有的action

 

posted @ 2020-09-24 15:27  寒江孤影,江湖路人  阅读(484)  评论(0编辑  收藏  举报