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

RsuiteJS中Nav.Item的active属性是什么?如何实现条件激活?

问题解答

1. 正确的active属性名称

你使用的这类侧边栏组件中,Nav.Item的激活属性名称确实是active,但它需要接收布尔类型的值,而非字符串。你之前尝试的{condition ? 'active': ''}传递的是字符串,组件无法识别,所以无效。

2. 条件控制激活的正确方式

方式一:直接绑定布尔条件值

直接将active属性设置为布尔表达式,当条件为true时自动激活,为false时取消激活:

<Nav.Item 
  eventKey="1" 
  active={condition} // 这里condition是你的判断条件,比如当前路径匹配/dashboard
  icon={<DashboardIcon />} 
  href="/dashboard"
>
  {t('Dashboard')}
</Nav.Item>

方式二:使用受控模式(更推荐)

对于带有eventKey的导航组件,更规范的做法是通过父组件Nav的activeKey属性统一控制激活项,能避免单个项设置的冲突:

// 先根据实际场景定义当前激活的key,比如通过路由路径判断
const activeKey = window.location.pathname === '/dashboard' ? '1' : '';

// 渲染Nav时绑定activeKey
<Nav activeKey={activeKey}>
  <Nav.Item 
    eventKey="1" 
    icon={<DashboardIcon />} 
    href="/dashboard"
  >
    {t('Dashboard')}
  </Nav.Item>
  {/* 其他导航项 */}
</Nav>

这种模式下,Nav会自动匹配activeKey对应的Nav.Item并设置激活状态,无需单独给每个项加active属性。

内容的提问来源于stack exchange,提问作者Airborne STD

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 09:47:41