2016-06-23 12 views
5

Aby określić styl określonego elementu menu, próbuję uzyskać bieżącą ścieżkę w moim komponencie Nawigacja.Pobierz bieżącą ścieżkę w komponencie reagowania

Próbowałem już kilku zwykłych podejrzanych, ale nie mogę uzyskać żadnych wyników. Zwłaszcza właściwości, które myślałem, że zostaną wstrzyknięte za pośrednictwem React, nie istnieją.

this.props.location powraca undefined

this.props.context zwraca undefined

używam 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 Wydaje się, że to minie tylko kontekst do bezpośredniego dziecka, ja corrent? –

+1

do dowolnego komponentu w poddrzewie, http://jsfiddle.net/3yLn5qzc/11/ – QoP

+0

@AnnaMelzer możesz podzielić się swoim routerem pod numerem – Gardezi

Odpowiedz

Powiązane problemy