为了账号安全,请及时绑定邮箱和手机立即绑定

react-redux中connect中的mapDispatchToProps疑惑

react-redux中connect中的mapDispatchToProps疑惑

MMTTMM 2018-12-16 08:47:45
代码一:import { addTodo } from './actionCreators'import { bindActionCreators } from 'redux'function mapStateToProps(state) {  return { todos: state.todos } }function mapDispatchToProps(dispatch) {  return bindActionCreators({ addTodo }, dispatch) }export default connect(mapStateToProps, mapDispatchToProps)(TodoApp)代码二:import { addTodo } from './actionCreators'function mapStateToProps(state) {  return { todos: state.todos } }const mapDispatchToProps = {   addTodo }export default connect(mapStateToProps, mapDispatchToProps)(TodoApp)以上两段代码的作用都是注入 todos 和特定的 action 创建函数,有一点疑惑的地方代码一中调用了bindActionCreators 而代码二中没有调用,两段代码出来的效果都是一样的。请问bindActionCreators 的作用是什么?
查看完整描述

1 回答

?
慕姐4208626

TA贡献1852条经验 获得超7个赞

function bindActionCreator(actionCreator, dispatch) {  return (...args) => dispatch(actionCreator(...args));
}/*
 * @param actionCreators
 * @param dispatch
 * @return {actionKey: (...args) => dispatch(actionCreator(...args))}
 */export default function bindActionCreators(actionCreators, dispatch) {  return mapValues(actionCreators, actionCreator =>
    bindActionCreator(actionCreator, dispatch)
  );
}

bindActionCreators部分源码,再里面调用了dispatch方法


查看完整回答
反对 回复 2018-12-16
  • 1 回答
  • 0 关注
  • 742 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信