我正在尝试使用 React 16.12.0 中的延迟加载和 Suspense。我也在使用 React Router 5.1.2。
这是我第一次使用 Suspense,但我还没有找到合适的方法来加载 a404/NoMatch
而不会导致其他问题。
我的代码如下所示:
import Component1 from 'path'
import Component2 from 'path'
import NoMatchPage from 'path'
const Component3 = lazy(()=>import('path'));
const Component4 = lazy(()=>import('path'));
<Router>
<Switch>
<Route exact path="/route-1" component={Component1}/>
<Route exact path="/route-2" component={Component2}/>
<Suspense fallback={<Loader/>}>
<Route exact path="/route-3" component={Component3}/>
<Route exact path="/route-4" component={Component4}/>
</Suspense>
<Route component={NoMatchPage}/>
<Switch>
</Router>
- 像这样写,
NoMatchPage
组件将永远不会显示。 - 写在 Suspense 中,作为最后一个子节点,将
NoMatchPage
在任何路由上渲染组件,放置在应该在该路径上渲染的组件之后。 - 写在 Suspense 上方,将
NoMatchPage
在任何路径上渲染组件,放置在应该在该路径上渲染的组件之前。
我已经检查了官方文档和很多实际示例,但我没有发现任何可以帮助我解决这个问题的东西。