2016-12-20 12 views
3

グローバルな状態にアクセスする必要はありませんが、アクション作成者をディスパッチする必要があるコンポーネントがあります。コンポーネントがアクションクリエータをディスパッチする必要がある場合に使用するパターンは何ですか?

それは二つの選択肢があるようだ:反応-reduxが(接続使用

  • が)とmapStateToPropsを介してグローバル状態を渡すとmapDispatchToPropsを経由して自分の行動のクリエイターを渡す - 私はグローバルな状態を渡して、作ることができるものからこのよう
  • が反応-reduxが(接続使用していないが、良いアイデアではありません)、代わりに

をthis.props.dispatch使用して、他の選択肢はありますか?

答えて

1

mapStateToPropsの代わりにnullを渡すことができます。

目標達成するための方法があります。

1. 注入するだけでdispatch機能およびコンポーネント

this.props.dispatch(actionCreator()); 

で、その後store

export default connect()(Component); 

に聞いていないが、

2. を注入actions creatorsstore

import * as actionCreators from './actionCreators' 

export default connect(null, actionCreators)(Component); 

その後、コンポーネントで

this.props.actionCreator(); 

ところで、あなたはグローバルな状態を渡すことはありませんに耳を傾けることはありません。これは、すべての処理後にコンポーネントが再レンダリングするため、パフォーマンスの最適化を強制終了します。

+0

これは素晴らしいです - ありがとうUtro :) – Jay

関連する問題