【发布时间】:2022-01-05 11:16:52
【问题描述】:
我有一个有两个孩子的用户路线。
我在 url 与用户不匹配的情况下使用了path="*",以便它返回 UserNotFoundPage。
问题是,虽然当 url 为 .../user/someIncorrectUsername 时它确实给了我 UserNotFoundPage ,但如果我只输入 .../user/ 或 .../user ,它会给我一个空页面。虽然我本以为它会让我进入 UserNotFoundPage。
我怎样才能得到这种行为?
这是我的代码:
<Router>
<Routes>
{/* PUBLIC */}
<Route path="*" element={<Navigate replace to="/welcome"/>}/>
<Route path="/welcome" element={<HomePage/>}/>
<Route path="/dashboard" element={<DashboardPage/>}/>
{/* RESTRICTED */}
<Route path="/login" element={<LoginPage/>}/>
{/* PRIVATE */}
<Route path="/user" element={<Users/>}>
<Route path="*" element={<UserNotFoundPage/>}/>
<Route path="username" element={<UserProfilePage/>}>
</Route>
</Route>
</Routes>
</Router>
function useAuth() {
return true;
}
function HomePage() {
return (
<div>
<h1>HOME PAGE</h1>
</div>
)
}
function UserNotFoundPage() {
return (
<div>
<p>User not found</p>
</div>
)
}
function Users() {
const auth = useAuth();
return auth ? <Outlet/> : <Navigate to="/login"/>;
}
function UserProfilePage() {
return (
<div>
<h4>USER PROFILE PAGE</h4>
</div>
)
}
function LoginPage() {
return (
<div>
<h2>
Login page
</h2>
</div>
)
}
【问题讨论】:
标签: javascript reactjs jsx react-router-dom