matchDispatchToProps
は、react-redux
の標準参照語ではありません。 HoCがどのように機能するのかを概観します。
connect
HoCには4つの引数があります。 mapStateToProps
,mapDispatchToProps
,mergeProps
およびoptions
。あなたは次のようにお店のdispatch
方法へのアクセス権を持っているあなたのコンポーネントに小道具としての機能を提供
mapStateToProps = (state) => ({
user: state.user
});
mapDispatchToProps
で:mapStateToProps
では、次のようにコンポーネントの内部で使用できるようにしたいお店ではどのような情報割り当てます。
mapDispatchToProps = (dispatch) => ({
updateUser: (user) => {
dispatch(updateUser(user));
}
});
注:updateUser
はあなたがいただろうactionCreater
です。次のように
その後、connect
HOCでそれらを使用します。
MyConnectedComponent = connect(mapStateToProps, mapDispatchToProps)(MyComponent);
は今、あなたは<MyConnectedComponent />
を使用することができますし、<MyComponent />
コードの内側にあなたが({ user, updateUser })
プロパティへのアクセス権を持っています。
:connect
は、null
の引数も取ることができます。 connect()(Component)
は、あなたのコンポーネントに小道具としてdispatch
を提供します。これは引数なしのデフォルト設定です。 connect(null, mapDispatchToProps)(Component)
を使用して、updateUser
をコンポーネント内の支柱にして、コンポーネントをストアに接続しなくてもかまいません。ストアからuser
へのアクセスを希望していても、コンポーネント内からディスパッチする必要がない場合はconnect(mapStateToProps)(Component)
にすることもできます。
追加情報
[mergeProps(stateProps、dispatchProps、ownProps):小道具](ファンクション):指定された
、それはmapStateToProps(の結果を渡された場合)、mapDispatchToProps ()、および親の小道具。それから返すプレーンオブジェクトは、ラップされたコンポーネントに小道具として渡されます。この関数を指定して、小道具に基づいて州の一部を選択したり、行動作成者を小道具の特定の変数に結びつけることができます。これを省略すると、Object.assign({}、ownProps、stateProps、dispatchProps)がデフォルトで使用されます。
指定した場合、[オプション](オブジェクト)
、さらにコネクタの挙動をカスタマイズ。 connectAdvanced()にまずまずのオプションに加えて(以下、これらを参照)、(接続)これらの追加のオプションを受け付けます(ブール)
[純粋な]:trueの場合、(接続)が再描画しないようになり、関連する州/小道具オブジェクトがそれぞれの等価チェックに基づいて等しい場合、mapStateToProps、mapDispatchToProps、およびmergePropsを呼び出します。ラップされたコンポーネントが「純粋な」コンポーネントであり、そのプロップおよび選択されたReduxストアの状態以外の入力または状態に依存しないと仮定します。デフォルト値:true
[areStatesEqual](機能):純粋な場合、着信ストアの状態を以前の値と比較します。デフォルト値:strictEqual(===)
[機能]:純粋な場合、着信プロップを以前の値と比較します。デフォルト値:shallowEqual
[areStatePropsEqual](機能):純粋な場合、mapStateToPropsの結果を以前の値と比較します。デフォルト値:shallowEqual
[areMergedPropsEqual](機能):純粋な場合、mergePropsの結果を前の値と比較します。デフォルト値:shallowEqual
[storeKey](文字列):店舗を読む場所のコンテキストのキー。おそらく、複数の店舗を持つことが賢明でない場合にのみ必要です。デフォルト値: 'store'
完全なドキュメントは、reactjs/react-reduxにあります。
違いはどういう意味ですか?どちらの場合も同じことになります... – Ale
2つの方法を作成するには、いくつかの違いがあるはずです。状況に応じていくつかのメリットとデメリットがあります。 – subhajit
@subhajit Javascriptで関数と矢印関数の違いを理解していますか?そうしないと、このような幅広い質問をする前に、基本的なES6 Javascriptを読んでいるはずです。 [良い質問をするにはどうすればいいですか?](https://stackoverflow.com/help/how-to-ask)を参照してください。 –