一个带有侧边栏的简单SPA.

目前,我应该只有两个页面/路由:1)"/"中的仪表板,2)"/Team"中的团队. 试试这里的应用Vercel链接:https://react-admin-dashboard-eight-pi.vercel.app/team

由于某些原因,从ReactRouter6使用链路时,路由不起作用.点击侧边栏菜单不会触发任何路由更改. 我到底做错了什么?

完整代码在此:https://github.com/windyzhang777/react-admin-dashboard/blob/main/src/App.jsx

//App.jsx

import { Route, Routes } from "react-router-dom";

<div className="app">
  <Sidebar /> {/* -------------------------------- has all the Links */}
  <main className="content">
    <Routes>
      <Route path="/" element={<Dashboard />} /> {/* ---- home route */}
      <Route path="/team" element={<Team />} /> {/* ----- team route */}
    </Routes>
  </main>
</div>

//Sigro.jsx

import { Menu, MenuItem, Sidebar as ProSidebar } from "react-pro-sidebar";
import { Link } from "react-router-dom";

export default function Sidebar() {
  const [isCollapsed, setIsCollapsed] = useState(false);
  const [selected, setSelected] = useState("Dashboard");

  return (
    <Box>
      <ProSidebar collapsed={isCollapsed}>
        <Menu>
          {/* MENU ITEMS */}
          <Box>
            <MenuItem
              active={selected === "Dashboard"}
              onClick={() => setSelected("Dashboard")}
            >
              <Typography>{"Dashboard"}</Typography>
              <Link to={"/"} /> {/* ---------------------- home route */}
            </MenuItem>

            <MenuItem
              active={selected === "Manage Team"}
              onClick={() => setSelected("Manage Team")}
            >
              <Typography>{"Manage Team"}</Typography>
              <Link to={"/team"} /> {/* ------------------ team route */}
            </MenuItem>
          </Box>
        </Menu>
      </ProSidebar>
    </Box>
  );
}

推荐答案

<Link>个元素没有任何子元素或内容,因此它们的大小为0 x 0像素,这使得它们太小而无法单击.

您可以将标签放在<Link>个元素中,或者更好的做法是,通过MenuItem的componentprops 使用React Pro Sidebar的路由集成,如所述here:

    <MenuItem component={<Link to="/calendar" />}> Calendar</MenuItem>

Reactjs相关问答推荐

条件索引路由

对搜索引擎优化来说,react 头盔的异步足够了吗?

无法在 NextJS 中获取嵌套对象

console.logs 没有显示在浏览器控制台上,但显示在我的终端上

在reduce()方法上得到NaN

如何优化 React 应用程序的性能?

Chakra UI:如何在选中状态下设置复选框 colored颜色

React Router v6 路径中的符号

React 组件列表中的第一个计时器正在获取值 NaN

为什么我的 Next.js (React) 组件只有在页面中时才有效?

FlatList 不在 React Native 中呈现项目

虽然通过了身份认证,但并没有导航到请求的页面

从服务器获取数据时未定义,错误非法调用

页面不显示

顶点图表甜甜圈项目边框半径

MUI - ButtonGroup fullWidth 条件屏幕大小不起作用?

如何通过 id 从 useSprings 数组中删除元素

刷新页面时状态改变问题

React 检测哪些 props 在 useEffect 触发器上发生了变化

您无权使用阻止 webRequest 侦听器.请务必在 list 中声明 webRequestBlocking 权限