2016-06-23 25 views
5

Belirli menü öğelerinin stilini belirlemek için, Gezinme bileşenimde geçerli yolu bulmaya çalışıyorum.Geçerli yolu bir tepki bileşeninde alın

Zaten bazı şüphelileri denedim, ancak sonuç alamıyorum. Özellikle React üzerinden enjekte edileceğini düşündüğüm özellikler orada değil.

this.props.location döner undefined

this.props.context döner kullandığım 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

için beni oku olduğunu ben formda tarafımca am içinde yolunu alabilirim? –

+1

alt ağacındaki herhangi bir bileşene, http://jsfiddle.net/3yLn5qzc/11/ – QoP

+0

@AnnaMelzer lütfen yönlendirici kodunu lütfen paylaşabilirsiniz – Gardezi

cevap

10

yönlendirici sizin bileşenini ekleyin ilk

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

Sen

this.props.location.pathname 

Sadece doğrudan çocuğa bağlam geçerdi bu gibi görünüyor @QoP Bu, konum

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

+4

Dediğim gibi: 'this.props.location' undefined değerini döndürdü, bu nedenle' this.props.location.pathname' bir arror atar. –

+0

Bileşeninizi Yönlendiriciye eklemelisiniz. –

İlgili konular