对于很长一段时间我一直在尝试错误的边界后,得到路由到我们的应用程序的工作一直打到,但今天我不仅发现了看似相同的例子很多躺在附近的代码有一个重要的区别:条航线由一个Switch
. 如果启用,这个简单的更改足以阻止路由工作。演示
取以下片段。如果我删除该Switch
位,即使每个组件都应该失败,这也能正常工作,但如果被开关包裹则不会。我想知道为什么。
<div style={{ backgroundColor: "#ffc993", height: "150px" }}>
<Switch>
<Route
path="/"
exact
render={() => (
<ErrorBoundary>
<MyComponent1 title="Component 1" />
</ErrorBoundary>
)}
/>
<Route
path="/comp1"
render={() => (
<ErrorBoundary>
<MyComponent1 title="Component 1 Again" />
</ErrorBoundary>
)}
/>
<Route
path="/comp2"
render={() => (
<ErrorBoundary>
<MyComponent2 title="Component 2" />
</ErrorBoundary>
)}
/>
</Switch>