为什么使用bindActionCreator而不是传递对象

时间:2018-05-09 11:03:24

标签: reactjs redux react-redux

function mapStateToProps(state) {
 return { todos: state.todos }
}

function mapDispatchToProps(dispatch) {
 return { actions: bindActionCreators(actionCreators, dispatch) }
}

export default connect(mapStateToProps, mapDispatchToProps)(TodoApp)

为什么我会使用mapDispatchToProps和bindActionCreators作为第二道具

export default connect(mapStateToProps, { getSthAction })(TodoApp)

这种方式也有效吗?有什么不同吗?

1 个答案:

答案 0 :(得分:1)

这些示例中唯一的区别是,您的mapDispatch函数会产生this.props.actions.someAction()而不是this.props.someAction(),因为您明确返回{{1}的结果}作为一个名为bindActionCreators的字段。

我个人建议总是使用"对象简写"版本 - 对我而言,永远是实际编写单独的actions函数的理由。