老师:下面这段代码,mapDispatchToProps函数体中返回的对象里有个key是actions,它实际起什么作用?
function mapStateToProps(state) {
return {
examples: state.examples,
};
}
/* istanbul ignore next */
function mapDispatchToProps(dispatch) {
return {
actions: bindActionCreators({ fetchRedditList }, dispatch),
};
}
export default connect(mapStateToProps, mapDispatchToProps)(RedditListPage);
之前我看您demo的一段代码,它也是用的connect,但是它是这样返回的,它跟上面的返回方式不太一样,请问这两者有什么区别?:
function mapStateToProps(state) {
return {
count: state.count
};
}
function mapDispatchToProps(dispatch) {
return bindActionCreators({ plusOne, minusOne }, dispatch);
}
const ConnectedCounter = connect(mapStateToProps, mapDispatchToProps)(Counter);
展开
作者回复: 这里的 actions 是传给组件的一个属性,可以是任意名字,使用时可以通过 this.props.actiions.xxx() 来引用某个 action,除了这么做,也可以把 xxx 直接传给组件,也就是后面的做法,从而通过 this.props.xxx() 来使用这个 action。所以用 actions 只是为了把多个 action 组织成了一个 属性传给了组件。