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

如何为ReactDataGrid组件添加id或data-testid属性?

如何给ReactDataGrid添加id或data-testid属性?

我们使用的是ReactDataGrid,需要为网格添加id或data-testid属性用于测试,但文档里没找到相关方法,尝试了直接传递属性的写法都无效:

<ReactDataGrid
  treeColumn="description"
  licenseKey="..."
  style={gridStyle}
  columns={columns}
  data-id="workPlease"
/>

<ReactDataGrid
  treeColumn="description"
  licenseKey="..."
  style={gridStyle}
  columns={columns}
  data-testid="workPlease"
/>

<ReactDataGrid
  treeColumn="description"
  licenseKey="..."
  style={gridStyle}
  columns={columns}
  id="workPlease"
/>

可以试试这两种解决方案:

  • 方案一:用容器元素包裹
    给外层的div添加测试属性,测试时通过容器定位网格,这种方法最简单:

    <div data-testid="workPlease">
      <ReactDataGrid
        treeColumn="description"
        licenseKey="..."
        style={gridStyle}
        columns={columns}
      />
    </div>
    
  • 方案二:通过Ref手动设置属性
    如果必须给网格自身的DOM元素添加属性,可以用ref获取网格的DOM节点,然后手动设置:

    import { useRef, useEffect } from 'react';
    
    function MyGridComponent() {
      const gridRef = useRef(null);
    
      useEffect(() => {
        if (gridRef.current) {
          // 替换成ReactDataGrid实际渲染的根元素选择器,比如.rdg-grid
          const gridRoot = gridRef.current.querySelector('.rdg-grid');
          if (gridRoot) {
            gridRoot.setAttribute('data-testid', 'workPlease');
            gridRoot.setAttribute('id', 'workPlease');
          }
        }
      }, []);
    
      return (
        <ReactDataGrid
          ref={gridRef}
          treeColumn="description"
          licenseKey="..."
          style={gridStyle}
          columns={columns}
        />
      );
    }
    

    注意需要先检查ReactDataGrid渲染后的DOM结构,找到正确的根元素选择器。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 17:38:20