2016-06-23 15 views
5

विशिष्ट मेनू आइटम की स्टाइल निर्धारित करने के लिए, मैं अपने नेविगेशन घटक में वर्तमान पथ प्राप्त करने का प्रयास कर रहा हूं।प्रतिक्रिया घटक में वर्तमान पथ प्राप्त करें

मैंने पहले से ही कुछ सामान्य संदिग्धों की कोशिश की, लेकिन कोई परिणाम नहीं मिल सका। विशेष रूप से गुण जो मैंने सोचा था कि प्रतिक्रिया के माध्यम से इंजेक्शन दिया जाएगा वहां नहीं हैं।

this.props.location रिटर्न undefined

this.props.context रिटर्न undefined

मैं उपयोग react 15, redux 3.5, react-router 2, react-router-redux 4

import React, {Component, PropTypes} from 'react'; 
import styles from './Navigation.css'; 
import NavigationItem from './NavigationItem'; 

class Navigation extends Component { 

    constructor(props) { 
    super(props); 
    } 

    getNavigationClasses() { 
    let {navigationOpen, showNavigation} = this.props.layout; 
    let navigationClasses = navigationOpen ? styles.navigation + ' ' + styles.open : styles.navigation; 
    if (showNavigation) { 
     navigationClasses = navigationClasses + ' ' + styles.collapsed; 
    } 
    return navigationClasses; 
    } 

    render() { 
    /* 
    TODO: get pathname for active marker 
    */ 

    let navigationClasses = this.getNavigationClasses(); 
    return (
     <div 
     className={navigationClasses} 
     onClick={this.props.onToggleNavigation} 
     > 

     {/* Timeline */} 
     <NavigationItem 
      linkTo='/timeline' 
      className={styles.navigationItem + ' ' + styles.timeline} 
      displayText='Timeline' 
      iconType='timeline' 
     /> 

     {/* Contacts */} 
     <NavigationItem 
      linkTo='/contacts' 
      className={styles.navigationItem + ' ' + styles.contact + ' ' + styles.active} 
      displayText='Contacts' 
      iconType='contacts' 
     /> 

     </div> 
    ); 
    } 
} 

Navigation.propTypes = { 
    layout: PropTypes.object, 
    className: PropTypes.string, 
    onToggleNavigation: PropTypes.func 
}; 

export default Navigation; 
+0

के लिए एक रीडमी, @QoP यह इस तरह लगता है केवल एक सीधा बच्चे को संदर्भ से होकर गुजरेगा है मैं corrent हूँ में अपना रास्ता मिल सकता है? –

+1

उपट्री में किसी भी घटक के लिए, http://jsfiddle.net/3yLn5qzc/11/ – QoP

+0

@AnnaMelzer क्या आप कृपया राउटर कोड साझा कर सकते हैं कृपया – Gardezi

उत्तर

10

अपने घटक जोड़े रूटर करने के लिए पहले

<Router path="/" component={Navigation} /> 

आप

this.props.location.pathname 

इस स्थान

https://github.com/ReactTraining/react-router/blob/master/packages/react-router/docs/api/location.md

+4

जैसा कि मैंने कहा था: 'this.props.location' अपरिभाषित लौटाता है, इसलिए' this.props.location.pathname' एक तीर फेंकता है। –

+0

आपको राउटर में अपना घटक जोड़ना होगा –

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