2016-01-21 69 views
1

我一直在与反应路由器一起工作得很好,直到我不得不尝试嵌套组件并让我的导航栏显示路径。例如,我想从我的匹配页面转到投资组合页面,然后我想要url反映这个(...... /#/ matches/portfolio)。如何使用反应路由器在嵌套组件之间移动

对我来说,文档似乎解释了如何做到这一点,但我只能得到更改的网址,而不是页面内容。没有错误表明只是注意到这种观点。

下面是一个包含嵌套的路线我的路由器:

ReactDOM.render(
    <Router history={hashHistory}> 
    <Route path="/" component={App}> 
     <Route path="login" component={Login} /> 
     <Route path="home" component={Home} /> 
     <Route path="matches" component={Matches}> 
     <Route path="portfolio" component={Portfolio}> 
      <Route path="search" component={Search} /> 
     </Route> 
     </Route> 
     <Route path="create" component={Create} /> 
     <Route path="join" component={Join}/> 
    </Route> 
    </Router> 
, document.getElementById('app')); 

如果我在比赛页上,并要链接到一个组合我有一个按钮:

<Link to="matches/portfolio">To Portfolio</Link> 

(理想我想要它有一个portfolioId附加到的网址,但我想保持它简单的时刻)

回购可以在这里找到: https://github.com/muddybarefeet/pirateStocks,然后主路由器位于server/client/src/app.jsx和server/client/src/components中的所有组件中。 查看项目运行nodemon server.js和webpack

回答

0

以下是我如何获得工作路线。这不是什么docs说,但它的作品!

ReactDOM.render(
    <Router history={hashHistory}> 
    <Route path="/" component={App}> 
    <Route path="/login" component={Login} /> 
    <Route path="/home" component={Home} /> 
    <Route path="/join" component={Join}/> 
    <Route path="/matches" component={Matches} /> 
    <Route path="/matches/portfolio" component={Portfolio} /> 
    <Route path="/matches/portfolio/search" component={Search} /> 
    <Route path="create" component={Create} /> 
    </Route> 
</Router> 
, document.getElementById('app')); 

然后用以下路线:

<Link to="/matches/portfolio">To Portfolio</Link>