2016-09-06 20 views
8

リアクション・ルータのonChangeフックを正しく動作させることに問題があります。ここにルートファイルがあります:リアクタ・ルータonChangeフック

import React from 'react'; 
import { Router, Route, browserHistory } from 'react-router'; 
import TestOne from './Pages/testone'; 
import TestTwo from './Pages/testtwo'; 

function logUpdate() { 
    console.log('Current URL: ' + window.location.pathname); 
} 

const Routes = (
    <Router history={browserHistory}> 
     {/* App Routes */} 
     <Route path="/" component={App} lang={lang}> 
      <Route path="/testone" component={TestOne} onUpdate={logUpdate} /> 
      <Route path="/testtwo" component={TestTwo} onUpdate={logUpdate} /> 
     </Route> 
    </Router>); 

export default Routes; 

私の理解は、各状態の変更時にlogUpdate関数がトリガーされることです。しかし、それはF5を介して対応するページをリロードするときにだけトリガされます。

私のメニューは、単純なリンク例えば:私が間違って何をやっている

<div> 
<Link to="/testone">Test One</Link> 
<Link to="/testtwo">Test Two</Link> 
</div> 

を使用していますか?

答えて

5

onUpdateRouterインスタンスでは、Routeではないと宣言する必要があります。 RouteonChangeonEnterフックを宣言できますが、これはおそらくあなたが探していたものです。

+0

偉大な、私はそれを逃したと信じられない! Thanks Igorsvee – Dave

+0

これらのリンクはバージョン2.X用です。 –

0

私はreact-router^2.4.0を使用していますが、onUpdateはうまく動作しませんでした。私は代わりに私の基本ルートコンポーネントonChangeを使用しています。

const Routes = (
    <Router history={browserHistory}> 
     {/* App Routes */} 
     <Route path="/" component={App} lang={lang} onChange={logUpdate}> 
      <Route path="/testone" component={TestOne} /> 
      <Route path="/testtwo" component={TestTwo} /> 
     </Route> 
    </Router>); 
関連する問題