reactjs - 'react-router-dom 404 for subRoute
问题描述
我想为我的子路由设置一个 404 页面有我的路由器
<Router>
<Suspense fallback={<Loader type="circle" />}>
<Switch>
<PublicRoute path="/" exact isAuthenticated={0}>
<Home />
</PublicRoute>
<PublicRoute path="/login" exact isAuthenticated={0}>
<Login />
</PublicRoute>
<PrivateRoute path="/private" isAuthenticated={1}>
<ProtectedRoutes />
</PrivateRoute>
<Route>
<NotFound />
</Route>
</Switch>
</Suspense>
</Router>
对于我的公共路线,我的组件正在工作
但是对于我的 ProtectedRoute =>
const ProtectedRoute = () => (
<Switch>
<Suspense fallback={<Loader type="circle" />}>
{routes.map(({ component: Component, path, exact }) => (
<Route path={`/private/${path}`} key={path} exact={exact}>
<Component />
</Route>
))}
</Suspense>
</Switch>
);
const routes = [
{
path: 'test',
component: lazy(() => import('../components/private/logged/index')),
},
{
path: 'otherTest',
component: lazy(() => import('../components/private/logged/index')),
}
];
我尝试了很多解决方案,但我卡住了,当用户在 XXXXX/private/ 中走错路线时,我不知道该怎么做才能创建 404 页面
解决方案
只需要删除=>
<Suspense fallback={<Loader type="circle" />}> && </Suspense>
从我阅读的官方文档中,有一个例子是 Switch 组件在 Suspense 组件中工作。
推荐阅读
- python - Python 输出格式
- javascript - 如何添加添加按钮以在 Angular 2/4/6/8 Multiselect Dropdown 中输入动态值?
- javascript - 如何将 kendoMultiSelect 选定值存储在数组变量中?
- sql - 包括带有记录的版本号
- java - 将文本文件中的行存储在 java 数组中
- python - 包含小时和项目的元组列表(24 小时格式小时转换为 12 小时格式)
- grails - 如何创建用于代码生成的 CLI 脚本,就像“grails create-controller”所做的那样
- java - 如何将 java 自定义对象转换为字符串并再次返回
- c# - unity c# 检查精灵的颜色 OnCollisionEnter2d()
- x86 - 现代英特尔处理器有多少种超标量方式?