0

私はreact-router-domを使ってプロジェクトを始めましたが、今回はReduxを追加したいと考えています。混乱反応ルータdomとreact-router-redux

react-router-domをそのまま使用するか、react-router-reduxをインストールするだけですか?または両方? ルートコンポーネントは同じ機能を果たしますか?私はちょっと混乱しているのですが、反応ルータドームの使用は何ですか?

すべてのリンクコンポーネントを、ストアにアクションをディスパッチする要素に切り替えますか?

ありがとうございました。

答えて

1

通常、Reduxを使用する場合、react-router-reduxを使用することをお勧めします。これは反応ルータをカプセル化します。

あなたのアプリを初期化するときだけ、RouterbrowserHistoryという反応ルータからReduxにいくつかのものを渡す必要があります。 app.jsで

import { Router, browserHistory } from 'react-router'; 
import { syncHistoryWithStore } from 'react-router-redux'; 

const initialState = {}; 
const store = configureStore(initialState, browserHistory); 

const history = syncHistoryWithStore(browserHistory, store); 

const render =() => { 
    ReactDOM.render(
    <Provider store={store}> 
     <Router 
      history={history} 
      routes={rootRoute} 
     /> 
    </Provider>, 
    document.getElementById('app') 
); 
}; 

あなたが再来のプロバイダ要素の子として反応し、あなたはまた、ルータ要素にのリアクトbrowserHistoryためReduxのラッパーを提供するルータの要素を提供しています。

プロジェクトの残りの部分では、Reactを直接呼び出すのではなく、react-router-reduxを使用する必要があります。

react-router-dom BTWは、反応ルータをカプセル化するReact 4の単純化のもう1つの層ですが、プロジェクトアーキテクチャがReduxの場合、Reduxのルールに従って作業する必要があるため、各アクションでストアを通過するために-router-redux(前述の初期化を除く)。

1

私はreact-router-reduxを使用することをお勧めします。 react-router-reduxを使用すると、ルーターの状態をReduxストアに接続できるので、他のアプリ状態とやりとりするために使用するのと同じAPIでルーターとやりとりすることができます。

0

react-router-reduxを使用してください。

react-router-reduxを使用すると、場所の状態は普通のオブジェクトとしてreduxストアに保持されます。つまり、他の状態と同じように、接続で位置情報を注入できます。

関連する問題