t-morisawa/scamper

イベントハンドラを親コンポーネントから渡すようにする

Closed this issue · 1 comments

スコープ

  • container/Start.js
  • container/ToggleResult.js

やること

上記をコンテナコンポーネントとするのをやめて、イベントハンドラはAppContainerからバケツリレーで渡すようにする

現状の実装について

サマリー

  • prensentational componentsを定義(StartButton, ToggleButton)
  • container componentsを宣言(Start, ToggleResult)
  • connectを使って、presentationalにmapDispatchToPropsを紐付けたものをcontainer componentsとして定義する

mapDispatchToPropsについて

  • mapDispatchToProps
    • actionとして定義したメソッドを持つオブジェクト
    • これをpresentationalのイベントハンドラに渡してactionを呼び出すとdispatchされる

補足 Reducer

  • Redux独自の概念
  • dispatcherに制限を加えたもの
  • f(action, state) => newstate な関数として定義する
  • stateがシングルトンなオブジェクトとなる

改修後の実装

  • AppContainer
    • actionsからメソッドをインポート
    • mapDispatchToPropsを定義
    • 定義したactionをOpeningやResultViewに渡していく
    • presentationalは改修不要かも?
    • container componentsはまるっと削除

redux, react-reduxとドキュメントを購読した方が良さそう