2017-06-25 30 views
0

私はReact/ReduxアプリケーションでmapDispatchToPropsを使用しています。React/Reduxアプリケーションでstore.dispatch()を使用するタイミングは?

function mapDispatchToProps(dispatch) { 
    return bindActionCreators({ fetchUsers }, dispatch); 
} 

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

私が代わりにmapDispatchToPropsのことを使用することができ、store.dispatch()は、コンテナの内部で使用されて見たことがありますか?私はstore.dispatch()を完全に理解していません。どこで使うべきですか?

答えて

1

サーバでアプリケーションをレンダリングすると、サーバ上で要求ごとに異なるstoreインスタンスが必要なので、これは機能しません。そのため、Redux文書ではこの方法をお勧めしません。 bindActionCreatorsのドキュメントから

あなたは尋ねるかもしれません:なぜ我々は、古典的なフラックスのように、すぐに店 インスタンスにアクションのクリエイターを結合しませんか?問題は、この がサーバー上でレンダリングする必要のある汎用アプリケーションではうまく動作しないことです。 ほとんどの場合、リクエストごとに個別のストアインスタンスを用意したいので、 異なるデータでそれらを準備できますが、バインドアクションクリエーター はその定義中にすべての要求に対して単一のストア インスタンスが付いていることを意味します。

また@Danはconnect()メソッド自身を使用することが示唆されたコメントhereを持っていました。

+0

ありがとうございます!だから基本的に私は常にstore.dispatch()の使用を避けるべきですか?私はそれがいくつかのレポに使われているのを見たので、それはよく使われるものだと思った。 – userden

+1

Reduxを使い始めるために、いくつかのチュートリアルが最初に使用され始めました。しかし、開発が進むにつれ、より良いものが出てくる:)。そして、ダンはそのような特徴の一つを思いついたばかりだった –

1

connectmapDispatchToPropsを使用します。それらはあなたにディスパッチし、1つの場所にディスパッチするコールをカプセル化するためのアクセスを提供します。

store.dispatchは、mapDispatchToPropsがうまくいかない場合に便利ですが、コードが不必要に複雑になるため避けてください。

関連する問題