Skip to content

TableWalker

TableWalker 渲染一个交互式数据表格,支持列分析、筛选和排序功能。它提供数据的表格视图,并可选择为每列显示统计摘要。

import { TableWalker } from '@kanaries/graphic-walker';

属性

数据属性

属性类型必填说明
dataRecord<string, any>[]是*客户端模式的数据记录数组。
fieldsIMutField[]字段定义,描述每一列。
computationIComputationFunction是*服务端计算函数。作为 data 的替代方案。

*提供 data(客户端)或 computation(服务端)其中之一。

表格配置

属性类型默认值说明
pageSizenumber20每页显示的行数。
hideProfilingbooleanfalse隐藏列分析(分布条形图)。
hidePaginationAtOnepagebooleanfalse当所有数据可在一页内显示时隐藏分页控件。
displayOffsetnumber0行号显示的偏移量。
disableFilterbooleanfalse禁用列筛选。
disableSortingbooleanfalse禁用列排序。
hideSemanticTypebooleanfalse隐藏列上的语义类型指示器。

外观属性

属性类型默认值说明
appearance'media' | 'light' | 'dark''media'暗色模式设置。
vizThemeConfigIThemeKey | GWGlobalConfigundefined视觉元素的主题。
uiThemeIUIThemeConfigundefined自定义 UI 颜色。

Ref 属性

属性类型说明
tableFilterRefReact.Ref<{ getFilters: () => IVisFilter[] }>用于访问当前筛选状态的 Ref。
storeRefReact.RefObject<VizSpecStore>内部可视化存储的 Ref。
onMetaChange(fid: string, meta: Partial<IMutField>) => void字段元数据变更时的回调。

国际化属性

属性类型说明
i18nLangstring语言代码。
i18nResourcesRecord<string, Record<string, string>>自定义翻译。

样式

属性类型说明
classNamestring根元素的 CSS 类名。
styleReact.CSSProperties内联样式。默认为 { width: '100%', height: '100%' }

示例

基础表格

import { TableWalker } from '@kanaries/graphic-walker';
 
function DataTable({ data, fields }) {
  return (
    <div style={{ height: '600px' }}>
      <TableWalker data={data} fields={fields} />
    </div>
  );
}

只读表格

<TableWalker
  data={data}
  fields={fields}
  disableFilter
  disableSorting
  hideProfiling
  pageSize={50}
/>

访问筛选器

import { useRef } from 'react';
 
function FilteredTable({ data, fields }) {
  const filterRef = useRef(null);
 
  const handleGetFilters = () => {
    if (filterRef.current) {
      const filters = filterRef.current.getFilters();
      console.log('Active filters:', filters);
    }
  };
 
  return (
    <>
      <button onClick={handleGetFilters}>Get Filters</button>
      <TableWalker
        data={data}
        fields={fields}
        tableFilterRef={filterRef}
      />
    </>
  );
}