フロントエンド勉強用+メモ

主にフロントエンドの勉強用+メモとして自分用に残していくブログ

Reduxにおけるconnectを理解する

connect()の引数

connectの呼び出し方はmapStateToPropsとmapDispatchToPropsという2つの関数を引数に取ります。

 

それぞれ以下の役割がある

データ型 用途
mapStateToProps storeが持っているstateをpropsに入れて子コンポーネントに渡す
mapDispatchToProps dispatchを呼び出す関数をpropsに入れて子コンポーネントに渡す

 

以下のコードの場合、mapStateToPropsにはcreateStore()の引数である、reducerで新しく作られたstateをpropsに入れてあげてコンポーネントに渡しています。

mapDispatchToPropsにはaction関数をpropsに入れてあげてコンポーネントに渡しています。

const mapStateToProps = state => ({ events: state.events })

const mapDispatchToProps = ({ readEvents })

export default connect (mapStateToProps, mapDispatchToProps)(EventsIndex);

まとめ

本来なら親などから引き継いでもらったり、繋いでもらったりしないといけないところ、「mapStateToProps」と「mapDispatchToProps」を使うことでそんなことは一切なしで、使いたいコンポーネントからすぐにPropsとして使うことができる。