2017-05-31 153 views
0

陣營路由器陣營路由器副路徑調用不同的父路由

我有一個副路徑設置的4版本:/profile/agree和子路徑上我想要一個<Link>標籤去/team

這是建立現在這樣父頁面:

<Router> 
    <Switch> 
    <Route exact path="/" component={Home} /> 
    <Route path="/profile" component={Profile} /> 
    <Route path="/team" component={Team} /> 
    </Switch> 
</Router> 

而且成型件有它自己的路由:

<Router> 
    <Switch> 
    <Route exact path="/profile" component={General} /> 
    <Route path="/profile/hotel" component={Hotel} /> 
    <Route path="/profile/release" component={Release} /> 
    </Switch> 
</Router> 

這是否是正確與否,我不知道,因爲沒有一個文檔似乎可以解釋這種類型的場景,但它對我來說很有意義。反正當「釋放」部分有一個簡單的鏈接,它似乎並不正確導航,只是顯示一個空白頁:

<a href="/team">Somehow</a> {/* << This works but refreshes the whole page */} 
<Link to="/team">Of Course</Link> {/* << This just shows empty profile page /*} 

我想也許子路由器只能仰望高達本身,所以也許:

<Link to="../team">Of Course</Link> 

但是,做了同樣的事情。它似乎仍然保留在「簡介」主要路線上。如何導航到不同的父路線?

+0

你在文檔中看到過這個嗎? https://reacttraining.com/react-router/web/example/route-config – taylorc93

+0

是@ taylorc93,但它似乎有點混亂。你必須創建某種「帶子路由的路由」組件似乎很奇怪。我會嘗試寫出他們所擁有的東西,並且仔細觀察以瞭解什麼/爲什麼這樣做。例如:爲什麼他們有路徑的JSON定義而不是嵌套元素?我也希望每條路線都能處理它自己的路由(不是一個人都知道)......這是一件奇怪的事情嗎?我在思考類似於ExpressJS的路由模式。每條路線都不在乎根源是什麼,它們只是將更多的東西添加到任何地方。 – Chris

回答

0

所以我最終想出了我有的簡單錯誤。 Profile中有<Router>的事實!

這樣做曾在個人資料(簡單地刪除路由器標籤):

<Switch> 
    <Route exact path="/profile" component={General} /> 
    <Route path="/profile/hotel" component={Hotel} /> 
    <Route path="/profile/release" component={Release} /> 
</Switch> 

這給了我什麼,我認爲是最有意義的。每個「場景」負責它自己的路由。唯一的缺點是它仍然需要/profile,儘管我可能會狡猾並將「根」作爲屬性發送到場景中。