我有一个全局文件,其中包含以下路径:
Global.tsx
import React from "react";
import { BrowserRouter as Router, Route, Routes } from "react-router-dom";
import LoginPage from "../../pages/Authentication/Login";
import SignupPage from "../../pages/Authentication/Signup";
const Global = () => {
return (
<Router>
<Routes>
<Route path="/" element={<LoginPage />} />
<Route path="/signup" element={<SignupPage />}></Route>
</Routes>
</Router>
);
};
export default Global;
以及另一个名为Admin的文件,该文件包含以下路由:
import React, { useContext, useEffect } from "react";
import "../../styles/App.scss";
import { ThemeContext } from "../../context/ThemeContext";
import { DARK_THEME, LIGHT_THEME } from "../../constants/themeConstants";
import { BrowserRouter as Router, Routes, Route } from 'react-router-dom'
import MoonIcon from '../../assets/icons/moon.svg';
import SunIcon from '../../assets/icons/sun.svg';
import BaseLayout from "../../layout/BaseLayout";
import DashboardScreen from "../../screens/Dashboard/DashboardScreen";
import PageNotFound from "../../screens/error/PageNotFound";
const Admin = () => {
const { theme, toggleTheme } = useContext(ThemeContext);
console.log(theme);
useEffect(() => {
if (theme === DARK_THEME) {
document.body.classList.add("dark-mode");
} else {
document.body.classList.remove("dark-mode");
}
}, [theme]);
return (
<>
<Router>
<Routes>
<Route element={<BaseLayout />}>
<Route path="/admin" element={<DashboardScreen />}></Route>
<Route path="*" element={<PageNotFound />}></Route>
</Route>
</Routes>
<button
type="button"
className="theme-toggle-btn"
onClick={toggleTheme}
>
<img
src={theme === LIGHT_THEME ? SunIcon: MoonIcon}
alt=""
className="theme-icon"
/>
</button>
</Router>
</>
);
};
export default Admin;
然后将它们合并到一个文件中:
// import "./App.scss";
import { SidebarProvider } from "./context/SidebarContext";
import { ThemeProvider } from "./context/ThemeContext";
import Admin from "./routes/admin/Admin";
import Global from "./routes/global/Global";
function App() {
return (
<div className="App">
<Global />
<ThemeProvider>
<SidebarProvider>
<Admin></Admin>
</SidebarProvider>
</ThemeProvider>
</div>
);
}
export default App;
发生的情况是,管理路由的侧栏显示了全局组件的登录或注册页面,尽管侧栏来自不同路由中的管理文件,如下图所示:
我try 了很多次,用不同的方法通过玩路由来分隔它们,但我做不到.必须有一种方法,使侧栏不会出现路由,尽管侧栏本身是一条不同的路由