我想有一個全球性的No Match路線來處理所有404。一旦登錄,所有主要視圖都將落入包含頁眉和頁腳的佈局中。儘管NotFound組件應該在此佈局之外進行渲染。陣營路由器4不匹配嵌套路線
下面是「工作」 code sample
下面是代碼的簡化示例的鏈接:
const App =() => (
<Switch>
<Route path="/register" component={Register} />
<Route path="/signin" component={SignIn} />
<Route path="/" component={Home} />
<Route component={NotFound} />
</Switch>
);
const Home =() => (
<div>
<Header />
<main>
<Switch>
<Route exact path="/" component={Main} />
<Route path="/list" component={List} />
<Route path="/tasks" component={Tasks} />
</Switch>
</main>
<Footer />
</div>
);
上面的代碼示例工作在渲染的佈局祝,但生成一個空白布局在非匹配的URL上。如果我設置的應用程序的根路徑exact
比我能得到NOTFOUND,但失去了家庭路線
雖然使用/不使用的根exact
,移動根Route
的I列表底部的變化可以獲得預期行爲的部分工作,但並非所有工作都一致。
如果我遊 「/」 我希望看到:
Some Header Thing
Home
Some Footer Thing
如果我遊 「/目錄」 我希望看到:
Some Header Thing
List
Some Footer Thing
如果我遊 「/註冊」 我期待看:
Register
如果我遊 「/ foobar的」 我期望看到:
Not Found
是的,我想這是行得通的,雖然正如你所說的那樣,我覺得自己很像重新實現舊的v3路由器配置。感覺像這樣的東西不應該那麼難,所以很可能缺乏對v4 API的全面掌握。我會繼續嘲笑它並牢記你的建議。 – Jadam