2017-02-22 94 views
1

也许有人知道我为什么可以创建子路由 我的代码。React-Router无法创建子路由

<Provider store={store}> 
    <Router history={history}> 
     <Route path="/" component={Main} > 
     <IndexRoute component={Home} /> 
     <Route path="performance" component={Performance} /> 
     <Route path="home" component={Home} > 
      <Route path="alert" component={Performance} /> 
     </Route> 
     </Route> 
    </Router> 
</Provider> 

// ... 
// imports 
import Main from './Main' 
import Performance from './performance/PerformanceComponent' 
import Home from './home/HomeComponent' 

import {Router, Route, IndexRoute} from 'react-router' 
import {Provider} from 'react-redux' 

我不能去这个地址 - > /首页/警报

,并有这样的错误控制台

alert:11 GET http://0.0.0.0:3001/home/css/style.css 
alert:12 GET ...home/css/home.css 
alert:13 GET ...home/css/detailsView.css 
alert:26 GET ...home/bundle.tvc.js 

我的意思是,如果我写错了地址,我有特殊的错误

Warning: [react-router] Location "/homealert" did not match any routes

我不知道该如何修复它。先谢谢你!

+0

你说,使用在'警报的/ home /警报结果:11 GET http://0.0.0.0:3001/home/css/style.css。 ..'在控制台中的错误,但使用/ homealert导致'警告:[react-router]位置“/ homealert”在控制台中与任何路由错误不匹配? –

+0

是的。这很奇怪 –

回答

1

如果您想要Performance组件在/home/alert上呈现,则需要此选项。您需要在每个匹配的Route s上指定完整路径。

<Route path="/" component={Main} > 
    <IndexRoute component={Home} /> 
    <Route path="/performance" component={Performance} /> 
    <Route path="/home" component={Home} > 
     <Route path="/home/alert" component={Performance} /> 
    </Route> 
    </Route> 

嵌套路径适用于组件,而不适用于路径。你的应用程序将呈现如下的/home/alert

<Main> 
    <Home> 
    <Performance>