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

Antd 5.22.x+React19折叠菜单点击时隐藏空标签弹窗问题

解决Antd 5.22.x + React 19折叠菜单点击无标签项出现空弹窗的问题

问题原因

Antd折叠状态下的内联菜单,默认会将菜单项的label作为tooltip内容展示。当菜单项未设置label时,tooltip会渲染为空容器,导致点击时出现空弹窗。

解决方案

1. 给无label的菜单项显式设置tooltipTitle: null

直接在无标签的菜单项配置中添加tooltipTitle: null,告知组件不需要显示tooltip:

const bottomItems: MenuItem[] = useMemo(
    () => [
      {
        key: 'bottom0',
        icon: <ReloadOutlined />,
        onClick: () => window.location.reload(),
        tooltipTitle: null
      },
      {
        key: 'bottom1',
        icon: <LanguageSelector />,
        tooltipTitle: null
      },
      {
        label: user?.name,
        key: 'bottom2',
        icon: <UserOutlined />,
      },
      {
        key: 'bottom3',
        icon: <OnlineIndicator />,
        tooltipTitle: null
      },
      {
        key: 'bottom4',
        icon: <LogoutOutlined />,
        onClick: logout,
        tooltipTitle: null
      },
    ] satisfies MenuItem[],
    [logout, user?.name]
  )

2. 用CSS强制隐藏空tooltip

如果不想修改菜单配置,可通过CSS选择器定位空tooltip容器并隐藏:

/* 隐藏折叠菜单的空tooltip内容 */
.ant-menu-inline-collapsed .ant-tooltip-inner:empty {
  display: none;
}
/* 同步隐藏tooltip箭头 */
.ant-menu-inline-collapsed .ant-tooltip-arrow {
  display: none;
}

若样式不生效,可适当提升选择器优先级(比如添加父容器类名)。

3. 全局配置Menu的tooltipProps

通过Menu组件的tooltipProps统一处理所有菜单项的tooltip,自动过滤空内容:

<Menu
  theme="dark"
  mode="inline"
  style={{ marginTop: 'auto' }}
  items={bottomItems}
  selectable={false}
  tooltipProps={{
    // 自定义tooltip内容,为空时返回null
    title: (originalTitle) => originalTitle || null
  }}
/>

该方法会对所有菜单项生效,无需逐个修改配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 17:33:18