2016-06-14 7 views
0

反応ルータルートのonChangeイベントへのコールバックとして還元アクションを使用したいと考えています。私も反応ルータ - レデュークスを使用しています。 fetchCompaniesがアクションである反応ルータルートコンポーネントのコールバックとしての動作

<Route path="profile/search" component={ProfileSearch} onChange={store.dispatch(fetchCompanies())} /> 

よう

何か。

一般的に、私はルート変更を聞き、最終的に国家と対話したいと思っています。そのため、アクションを使用することが私にとって最も簡単な選択肢のようです。しかし、私はこのエラーが発生します:

Uncaught TypeError: hook.apply is not a function TransitionUtils.js?f913:22 

これを達成する別の方法はありますか?本質的に悪いルート変更のコールバックとしてアクションを渡そうとしていますか?そうでない場合は、どうすれば動作させることができますか?

+0

なぜあなたはルータレベルでそれをしたいですか? – Hareesh

+0

APIリクエストをコールバックとしてトリガするために(ルートが変更されるたびに)、 'Route'コンポーネントと' onChange'を使用するだけです。 apiリクエストは、グローバルな状態で保存しなければならないデータを返します。 – feychou

+0

これもコンポーネントで行うことができます。例:反応コンポーネントのcomponentDidMount()ライフサイクルにアクションをディスパッチします。 – Hareesh

答えて

0

store.dispatchを呼び出すと、エラーがスローされますが、関数内でディスパッチされたアクションがラップされます。

const onChangeProfileSearch =() => store.dispatch(fetchCompanies()); 
<Route path="profile/search" component={ProfileSearch} onChange={onChangeProfileSearch} /> 

しかし、これにはより良いアプローチがあるかもしれません。

関連する問題