2016-09-06 13 views
8

मुझे ठीक से काम करने के लिए प्रतिक्रिया-राउटर में चेंज हुक प्राप्त करने में समस्याएं आ रही हैं। यहां मेरे मार्ग फ़ाइल हैं:रिएक्ट-राउटर ऑन चेंज हुक

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; 

मेरी समझ यह है कि फ़ंक्शन लॉगअपडेट प्रत्येक राज्य परिवर्तन पर ट्रिगर किया जाएगा। हालांकि, यह केवल तभी ट्रिगर होता है जब मैं इसी पृष्ठ को F5 के माध्यम से पुनः लोड करता हूं।

मेरे मेनू सरल लिंक उदा .:

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

क्या मैं गलत कर रहा हूँ उपयोग कर रहा है?

उत्तर

5

onUpdate को Router उदाहरण पर घोषित करने की आवश्यकता नहीं है Route एस। हालांकि, Route एस onChange और onEnter हुक घोषित कर सकते हैं - शायद यह वही है जो आप खोज रहे थे।

+0

ग्रेट, विश्वास नहीं कर सकता कि मैंने इसे याद किया है! धन्यवाद Igorsvee – Dave

+0

ये लिंक संस्करण 2.X के लिए हैं, अब 4.0 पर प्रतिक्रिया-राउटर :) –

0

मैं प्रतिक्रिया-राउटर^2.4.0 का उपयोग कर रहा हूं और ऑनअपडेट मेरे लिए काम नहीं करता है। मैंने इसके बजाय मेरे बेस रूट घटक पर चेंज का उपयोग किया है।

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>); 
संबंधित मुद्दे