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

如何在AG Grid中创建可交互工具提示?解决点击链接前消失问题

AG Grid自定义Tooltip链接点击问题解决方案

问题根源是AG Grid默认Tooltip会在鼠标离开单元格时立即隐藏,导致还没点击到Tooltip内的链接就消失了。以下是具体解决步骤:

1. 修复Tooltip组件的数据获取逻辑并添加事件控制

原代码中useMemo依赖项为空会导致数据无法随行索引更新,同时新增鼠标事件控制Tooltip显示状态:

import React, { useMemo } from 'react';

export default (props) => {
  // 加入正确依赖项,确保数据实时更新
  const data = useMemo(
    () => props.api.getDisplayedRowAtIndex(props.rowIndex).data,
    [props.rowIndex, props.api]
  );

  // 鼠标进入Tooltip时,强制保持显示
  const handleTooltipMouseEnter = () => {
    props.api.showTooltip({
      rowIndex: props.rowIndex,
      column: props.column,
    });
  };

  // 鼠标离开Tooltip时,关闭Tooltip
  const handleTooltipMouseLeave = () => {
    props.api.hideTooltip();
  };

  return (
    <div
      className="custom-tooltip"
      style={{ backgroundColor: props.color || 'white' }}
      onMouseEnter={handleTooltipMouseEnter}
      onMouseLeave={handleTooltipMouseLeave}
    >
      <p>
        <span>{data.athlete}</span>
      </p>
      <p>
        <span>Country: </span> {data.country}
      </p>
      <div>
        <a href="https://www.ag-grid.com/react-data-grid/component-tooltip/">
          ag grid component tooltip
        </a>
      </div>
      
      <p>
        <span>Total: </span> {data.total}
      </p>
    </div>
  );
};

2. 调整AG Grid的Tooltip配置

在Grid配置中设置延迟参数,避免鼠标从单元格移到Tooltip时出现闪烁:

const gridOptions = {
  // 其他原有配置...
  tooltipShowDelay: 0,
  tooltipHideDelay: 200, // 给鼠标移动到Tooltip预留缓冲时间
  tooltipComponent: CustomTooltip,
};

原理说明:

  • tooltipHideDelay设置200ms延迟,确保鼠标有足够时间从单元格移到Tooltip区域,不会立即隐藏。
  • 鼠标进入Tooltip时调用showTooltip强制保持显示,离开时调用hideTooltip关闭,保证链接可正常点击。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 07:33:24