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