You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React侧边栏按钮无法加载对应内容页面问题求助

问题修复:React侧边栏点击无响应,无法切换Content页面

你的代码存在3个关键错误,导致点击侧边栏按钮后无任何反应,逐个修复即可解决问题:

1. 父组件传递回调函数错误包裹为对象

在DoctorsUI.jsx中,你将回调函数用对象包裹传递给子组件,导致子组件无法正确调用:

错误代码:

<SideNavBar onSideNavBarClick={{handleSideNavClick}} />

修复后:直接传递函数本身

<SideNavBar onSideNavBarClick={handleSideNavClick} />

2. 子组件调用回调函数时拼写错误

在SideNavbar.jsx中,props接收的参数是onSideNavBarClick,但你调用时写成了onSideNavbarClick(注意NavBar与Navbar的大小写差异):

错误代码:

const handleClick = (page) => {
    onSideNavbarClick(page)
}

修复后:修正函数名拼写

const handleClick = (page) => {
    onSideNavBarClick(page)
}

3. SideBarButton组件导入路径错误

在SideNavbar.jsx中,你导入SideBarButton时使用了错误的路径,实际组件文件名为SideBarButton.jsx:

错误代码:

import SideBarButton from "./SideNavBarLinks";

修复后:修正导入路径

import SideBarButton from "./SideBarButton";

可选优化:提升组件语义化

SideBarButton中的ButtonSidebar使用了div元素,虽然能绑定点击事件,但改用button元素更符合语义化规范,同时可以简化样式:

// SideBarButton.jsx
const ButtonSidebar = styled.button`
  position: relative;
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: left;
  width: 100%;
  background: transparent;
  border: none;
  border-top-right-radius: 15px;
  border-bottom-right-radius: 15px;
  font-weight: 350;
  transition: all 0.2s ease-in;
  color: ${colors.onSecContainer};
  height: 70px;
  cursor: pointer;

  &:hover {
    background: ${colors.SurfContainer_highest};
  }

  &.active {
    background: ${colors.secContainer};
    color: ${colors.onPrimContainer};
    transition: all 0.4s ease-in-out;
    font-weight: 400;
  }
`;

修复完以上三个关键错误后,侧边栏按钮点击会正常触发selectedPage状态更新,Content组件也会随之渲染对应的页面。

内容的提问来源于stack exchange,提问作者Retarded Dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 07:48:10