代碼一: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 回答

慕虎7371278
TA貢獻1802條經驗 獲得超4個贊
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
方法
- 1 回答
- 0 關注
- 674 瀏覽
添加回答
舉報
0/150
提交
取消