2018-10-07
状況: todoActionCreators
と counterActionCreators
という2つの action creators があるとき、これらをまとめて this.props.actions
に割り当てたい。
bindActionCreators()
で複数の action creators をバインドしたいときは、以下のようにスプレッド演算子を使って1つのオブジェクトにまとめる。
import * as todoActionCreators from './todoActionCreators'
import * as counterActionCreators from './counterActionCreators'
import { bindActionCreators } from 'redux'
function mapStateToProps(state) {
return { todos: state.todos }
}
function mapDispatchToProps(dispatch) {
return {
// スプレッド演算子でまとめる
actions: bindActionCreators({
...todoActionCreators,
...counterActionCreators
}, dispatch)
}
}
export default connect(mapStateToProps, mapDispatchToProps)(TodoApp)
action の名前が衝突しないように気をつけたい。