2016-08-06 13 views
0

Ich arbeite an einer sehr einfachen Reaktion App, aber wenn ich versuche, Router in immer macht Pfadname mit Großbuchstaben Großbuchstaben und ich habe keine Ahnung warum.React Capital Fall in Routen

app.js

import React from "react"; 
import ReactDOM from "react-dom"; 
import Layout from "./pages/Layout" 
import Basket from "./pages/Basket" 
import { Router, Route, IndexRoute, hashHistory } from "react-router" 

const app = document.getElementById('app'); 

ReactDOM.render(
    <Router history={hashHistory}> 
    <Route path="/" component={Layout}> 
     <IndexRoute component={ItemsList}></IndexRoute> 
     <Route path="basket" name="basket" component={Basket}></Route> 
    </Route> 
    </Router>, 
app); 

Header.js

import React from "react"; 
import { Link } from "react-router" 

export default class Header extends React.Component { 
    render() { 
     const { location } = this.props; 
     const basketClass = location.pathname.match(/^\/basket/) ? "active" : ""; 
    return (
     <header> 
      <nav class="navbar navbar-default"> 
       <div class="container"> 
        <ul class="nav navbar-nav"> 
         <li class={inventoryListClass}><Link to="/">Inventory</Link></li> 
         <li class={basketClass}><Link to="basket">Basket</Link></li> 
        </ul> 
       </div> 
      </nav> 
     </header> 
    ); 
    } 
} 

hat jetzt jemand, warum nutzt es Großbuchstaben "/Basket", wenn ich ausdrücklich "angegeben Korb "im Routenparameter.

danke.

Layout.js

import React from "react"; 

import Footer from "./Footer"; 
import Header from "./Header"; 

export default class Layout extends React.Component { 

    render() { 
     const { location } = this.props 
     return (
      <div> 
       <Header location={location} /> 
       <div class="container"> 
        {this.props.children} 
       </div> 
       <Footer /> 
      </div> 
     ); 
    } 
} 
+0

Möglich, dass Sie den '/ Basket' ​​Pfad in Ihrer URL aktiviert haben – 1ven

+0

Es ist auch nicht klar, warum Sie versuchen,' this.props.location' -Eigenschaft von nicht-Route-Handler 'Header'-Komponente zu bekommen. Es sollte nicht "Standort" prop haben. Könnten Sie einen Komponentencode bereitstellen, der 'Header' darstellt? – 1ven

+0

ok gerade layout.js Komponenten hinzugefügt, die Header-Komponente rendert –

Antwort

0

Ok, so habe ich das Problem gefunden. Ich legte Kapital Kapital "B" in <link to=Basket diese Linie in meinem header.js

<li class={basketClass}><Link to="Basket">Basket</Link></li>

So war es nur eine Art. Tut mir leid, Leute.

1

Sie müssen nicht nach aktiven Routen suchen, übrigens gibt es activeClassName="active", die das gleiche tut.