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

Mantine React Table中Tooltip被列宽遮挡问题求解

解决Mantine React Table中Tooltip被列宽截断的问题

你遇到的问题核心是Tooltip默认在表格单元格的DOM层级内渲染,而表格单元格通常会设置overflow: hidden来控制内容显示,就算加了z-index也突破不了这个限制。直接用下面的方法就能解决:

关键修改:开启Tooltip的Portal渲染

Mantine的Tooltip提供了withinPortal属性,开启后会把Tooltip挂载到document.body下,完全脱离父容器的布局限制,自然就不会被列宽截断了。同时注意z-index要传数字类型,不是字符串。

修改你的操作图标Tooltip代码:

const table = useMantineReactTable({
  //...其他配置项
  renderRowActions: ({ row }) => (
    <>
      <Tooltip 
        label="Text" 
        position="left" 
        withArrow 
        zIndex={9999} //改成数字类型
        withinPortal //添加这个属性,让Tooltip脱离父容器
      >
        <Box style={{ display: 'flex', alignItems: 'center', gap: '0px' }}>
          <ActionIcon onClick={(event) => handleViewJSON()}>
            <IconJson />
          </ActionIcon>
        </Box>
      </Tooltip>
    </>
  ),
  //...其他配置项
});

表头Tooltip的处理

如果是表头的Tooltip,同样给Tooltip加上withinPortal属性就行,示例:

columns={[
  {
    accessorKey: 'yourColumnKey',
    header: ({ column }) => (
      <Tooltip label="表头提示文本" withinPortal>
        <span>{column.columnDef.header}</span>
      </Tooltip>
    ),
  },
  //...其他列配置
]}

原理很简单:Portal渲染让Tooltip跳出了表格单元格的overflow限制,这时候z-index的层级设置才能正常生效,Tooltip就能完整显示出来了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 17:53:14