javascript 当直接输入URL时,响应路由器dom v6重定向到主页

bfnvny8b  于 2022-12-21  发布在  Java
关注(0)|答案(1)|浏览(150)

我正在为我的react网站建立私人和公共路由。
我有个问题:当我尝试直接使用路径名的链接时,它会重定向到主页。
例如,我有一个路径名为dashboard的私有路由,直接输入链接时:https://localhost:3000/dashboard仍然会重定向到https://localhost:3000/,我猜这是因为PrivateRoutes()函数,它总是将路径重定向到主页,但不知道如何修改它。

应用程序js

const App = () => {
  const {
    state: { isAuthenticated },
  } = AuthContext();
  function PrivateRoutes() {
    return isAuthenticated ? <Outlet /> : <Navigate to="/login" />;
  }

  function PublicRoutes() {
    return isAuthenticated ? <Navigate to="/home" /> : <Outlet />;
  }

  return (
    <BrowserRouter>
      <Routes>
        <Route element={<PrivateRoutes />}>
          <Route path="/*" element={<Layout />} />
        </Route>

        <Route path="*" element={<Error />} />
        <Route path="login" element={<PublicRoutes />}>
          <Route path="/login" element={<Login />} />
        </Route>
      </Routes>
    </BrowserRouter>
  );
};

布局.js

const Layout = () => {
  return (
    <Box>
      <Header />

      <Routes>
        <Route index element={<Home />} />
        <Route path="dashboard" element={<Dashboard />} />
        <Route path="transaction" element={<Transaction />} />
        <Route path='/*' element={<Navigate to="/" />} />
      </Routes>

      <Footer />
    </Box>
  );
};
jc3wubiy

jc3wubiy1#

<Routes>
     <Route path="/" element={<Home/>} />                                         
     <Route path="/login" element={<Login/>} />   
    <Route path="/dashboard"element={
      token? <Admin/> :<Login/>
      } />
                          
</Routes>

我是这样做的,试试看,而不是在额外的功能中得到那个

相关问题