【发布时间】:2022-01-09 18:55:58
【问题描述】:
我想根据 react-router-dom v6 的路由隐藏一个组件。我可以用确切的路径制作它,但我也想将它隐藏在嵌套路线中。我试过这样:
{location !== "/dashboard/*" && <Header />}
但它只适用于页面http://localhost:3000/dashboard/*,这不是我想要的。我该如何解决这个问题?
这是完整的代码:
const location = useLocation().pathname
const conditionLocation = location === "/dashboard" || location === "/dashboard/*"
return !conditionLocation && <Header />
路线:
// Packages
import React from "react"
import { Routes, Route } from "react-router-dom"
// User
import Dashboard from "../pages/admin/Dashboard"
import EditAccount from "../pages/admin/EditAccount"
function Switch() {
return (
<Routes>
<Route path="/dashboard" element={<Dashboard />} />
<Route path="/dashboard/edit" element={<EditAccount />} />
</Routes>
)
}
export default Switch
感谢您的帮助!
【问题讨论】:
-
您要隐藏或有条件地渲染什么?
Header组件?您接受的答案可能有效....但我确信有一种更简单、更直接的方法。