2017-02-15 11 views
27

मैं <AppBar /> में प्रदर्शित करना चाहता हूं जो किसी भी तरह से वर्तमान मार्ग से पारित किया गया है।प्रतिक्रिया राउटर v4 - वर्तमान मार्ग कैसे प्राप्त करें?

रिएक्ट राउटर v4 में, <AppBar /> वर्तमान मार्ग को title प्रोप में कैसे पारित करने में सक्षम हो जाएगा?

<Router basename='/app'> 
    <main> 
     <Menu active={menu} close={this.closeMenu} /> 
     <Overlay active={menu} onClick={this.closeMenu} /> 
     <AppBar handleMenuIcon={this.handleMenuIcon} title='Test' /> 
     <Route path='/customers' component={Customers} /> 
    </main> 
    </Router> 

वहाँ एक कस्टम prop<Route /> पर से कस्टम शीर्षक पारित करने के लिए कोई तरीका है?

+0

संभावित डुप्लिकेट (https://stackoverflow.com/questions/35031911/how [प्रतिक्रिया रूटर 2.0.0-RC5 में मौजूदा मार्ग प्राप्त करने के लिए कैसे] -to-get-current-path-in-react-router-2-0-0-rc5) –

उत्तर

45

प्रतिक्रिया राउटर 4 में वर्तमान मार्ग - this.props.location.pathname है। बस this.props प्राप्त करें और सत्यापित करें। यदि आपको अभी भी location.pathname नहीं दिखाई देता है तो आपको सजावट withRouter का उपयोग करना चाहिए।

यह कुछ इस तरह दिख सकता है:

import {withRouter} from 'react-router-dom'; 
    ... 

    const SomeComponent = withRouter(props => <MyComponent {...props}/>); 

    class MyComponent extends React.Component { 
     ... 
     SomeMethod() { 
      const {pathname} = this.props.location; 
      ... 
     } 
     ... 

    } 
की
+5

कृपया ध्यान दें कि यह हमेशा सत्य नहीं होता है: प्रतिक्रिया-राउटर 4 के साथ, यदि आपका घटक किसी उच्च स्तर पर सम्मानित होता है नेस्टेड मार्ग (जो बाद में पथ बढ़ाता है) WithRouter के अंदर location.pathname 'window.location.pathname' से अलग होगा – maioman

संबंधित मुद्दे