Sto usando reagire router 1.0.2 e le mie vie di simile a questa:condizionale set classe attiva sul menu utilizzando reagire router percorso corrente
ReactDOM.render(
<Provider store={store}>
<Router history={history}>
<Route path="/" component={App}>
<IndexRoute component={Home}/>
<Route path="triangles" component={Triangles}/>
</Route>
</Router>
</Provider>,
document.querySelector('.container')
);
componente
My App assomiglia a questo e ho pensato che avrei potuto passare il percorso negli oggetti di scena:
import React, {Component} from 'react';
import Menu from './menu';
export default class App extends Component {
render() {
return (
<div>
<Menu/>
<div className="jumbotron">
{this.props.children && React.cloneElement(this.props.children, {
location: this.props.location
})}
</div>
</div>
);
}
};
voglio impostare condizionalmente una classe attiva sul componente Menu:
import React, {Component} from 'react';
import { pushPath } from 'redux-simple-router';
import { Link } from 'react-router';
export default class Menu extends Component {
render() {
return (
<nav role="navigation" className="navbar navbar-default">
<div id="navbarCollapse" className="collapse navbar-collapse">
<ul className="nav navbar-nav">
<li className={this.props.location.pathname === '/' ? 'active' : ''}>
<Link to="/">Home</Link>
</li>
</ul>
</div>
</nav>
);
}
};
Ma lo this.props.location
è nullo quando viene richiamata la funzione di rendering del menu?
Come posso passare oggetti di scena ai componenti del bambino?
Ricordo di aver usato props.params per questo. Non ne sono del tutto sicuro. –