Skip to content

Table Props ​

ts
<StkTable
  ...[props]
/>

API ​

width ​

Table width

ts
width?: string;

minWidth ​

Minimum table width @deprecated Use css selector .stk-table-main to set

ts
minWidth?: string;

maxWidth ​

Maximum table width @deprecated Use css selector .stk-table-main to set

ts
maxWidth?: string;

stripe ​

Zebra stripes

ts
stripe?: boolean;

fixedMode ​

Whether to use table-layout:fixed

ts
fixedMode?: boolean;

headless ​

Whether to hide table header

ts
headless?: boolean;

theme ​

Theme, light or dark

ts
theme?: 'light' | 'dark';

rowHeight ​

Row height

  • When props.autoRowHeight is true, this represents the expected row height for calculation. It no longer affects the actual row height.
ts
rowHeight?: number;

autoRowHeight ​

Whether to use variable row height

  • When set to true, props.rowHeight represents the expected row height for calculation. It no longer affects the actual row height.
ts
autoRowHeight?: boolean | {
  /** Estimated row height (higher priority than rowHeight) */
  expectedHeight?: number | ((row: DT) => number);
};

rowHover ​

Whether to highlight the row on mouse hover

ts
rowHover?: boolean;

rowActive ​

Whether to highlight the selected row

ts
rowActive?: boolean | {
  /** Whether to enable row selection function default: true */
  enabled?: boolean;
  /** Whether to disable row selection default: () => false */
  disabled?: (row: DT) => boolean;
  /** Whether selection can be revoked default: true */
  revokable?: boolean;
};

headerRowHeight ​

Header row height. default = rowHeight

ts
headerRowHeight?: number | null;

footerRowHeight ​

Footer row height. default = rowHeight

ts
footerRowHeight?: number | string | null;

virtual ​

Virtual scrolling

ts
virtual?: boolean;

virtualX ​

Horizontal virtual scrolling (must set column width)

ts
virtualX?: boolean;

columns ​

Table column configuration

Shallow listen, please modify the reference when changed

ts
columns?: StkTableColumn<any>[];

dataSource ​

Data source

Shallow listen, please modify the reference when changed

ts
dataSource?: any[];

rowKey ​

Row unique key (row unique value cannot be undefined)

ts
rowKey?: UniqKeyProp;

colKey ​

Column unique key. Default is dataIndex

ts
colKey?: UniqKeyProp;

emptyCellText ​

Empty cell display text

ts
emptyCellText?: string | ((option: { row: DT; col: StkTableColumn<DT> }) => string);

noDataFull ​

Whether the fallback height for no data fills the container

ts
noDataFull?: boolean;

showNoData ​

Whether to show no data message

ts
showNoData?: boolean;

sortRemote ​

Whether to use server-side sorting, true means not sorting data

ts
sortRemote?: boolean;

showHeaderOverflow ​

Whether header content overflows with ellipsis

ts
showHeaderOverflow?: boolean;

showOverflow ​

Whether body content overflows with ellipsis

ts
showOverflow?: boolean;

showTrHoverClass ​

Whether to add row hover class

ts
showTrHoverClass?: boolean;

cellHover ​

Whether to highlight the cell on mouse hover

ts
cellHover?: boolean;

cellActive ​

Whether to highlight the selected cell

ts
cellActive?: boolean;

selectedCellRevokable ​

Whether clicking the cell again can deselect it (cellActive=true)

ts
selectedCellRevokable?: boolean;

areaSelection ​

Whether to enable cell range selection (drag selection)

ts
areaSelection?: boolean | {
  /**
   * Custom cell text formatter for clipboard copy.
   * If you use customCell to render cells, you should provide this callback to ensure the copied text matches the displayed content.
   * @param row Row data
   * @param col Column configuration
   * @param rawValue row[col.dataIndex] raw value
   * @returns Text to be copied to clipboard
   */
  formatCellForClipboard?: (row: DT, col: StkTableColumn<DT>, rawValue: any) => string;
  /**
   * Whether to enable keyboard control for selection area.
   * When enabled, arrow keys / Tab / Shift+Tab can control selection area movement, similar to Excel behavior.
   * When this feature is enabled, the original keyboard scrolling behavior will be disabled.
   * @default false
   */
  keyboard?: boolean;
};

headerDrag ​

Whether header can be dragged. Supports callback function.

ts
headerDrag?:
  | boolean
  | {
      /**
       * Column swap mode
       * - none - Do nothing
       * - insert - Insert (default)
       * - swap - Swap
       */
      mode?: 'none' | 'insert' | 'swap';
      /** Columns that are disabled from dragging */
      disabled?: (col: StkTableColumn<DT>) => boolean;
    };

rowClassName ​

Add className to rows

ts
rowClassName?: (row: any, i: number) => string;

colResizable ​

Whether column width is resizable (requires setting columns and using together with the onupdatecolumns callback) Do not set column minWidth, must set width When resizing column width, each column must have a width, and minWidth/maxWidth will not take effect. Table width will become "fit-content".

  • Will automatically update the width property in props.columns
ts
colResizable?: boolean | {
  /** Columns that are disabled from resizing */
  disabled?: (col: StkTableColumn<DT>) => boolean;
};

colMinWidth ​

Minimum column width when resizing

ts
colMinWidth?: number;

bordered ​

Cell border. Default has both horizontal and vertical borders "h" - Only show horizontal lines "v" - Only show vertical lines "body-v" - Only show vertical lines in body "body-h" - Only show horizontal lines in body

ts
bordered?: boolean | 'h' | 'v' | 'body-v' | 'body-h';

autoResize ​

Automatically recalculate virtual scroll height and width. Default true [Non-reactive] Passing a method represents a callback after resize

ts
autoResize?: boolean | (() => void);

fixedColShadow ​

Whether to show fixed column shadow. For performance, default false.

ts
fixedColShadow?: boolean;

sortConfig ​

Sort configuration

ts
sortConfig?: {
  /** Whether empty values are sorted at the bottom */
  emptyToBottom: boolean,
  /** Default sort (1. Triggered on initialization 2. Triggered when sort direction is null) */
  defaultSort?: {
      dataIndex: keyof T;
      order: Order;
  };
  /**
   * Whether to use String.prototype.localCompare for string sorting
   * Default true (due to historical design issues, default is true for compatibility)
   */
  stringLocaleCompare?: boolean;
},

hideHeaderTitle ​

Hide header mouse hover title. Can pass dataIndex array

ts
hideHeaderTitle?: boolean | string[];

highlightConfig ​

Highlight configuration

ts
highlightConfig?: {
  /** Highlight duration (s) */
  duration?: number;
  /** Highlight frame rate */
  fps?: number;
};

seqConfig ​

Sequence column configuration

ts
seqConfig?: {
  /** Sequence column start index for pagination adaptation */
  startIndex?: number;
};

expandConfig ​

Expand row configuration

ts
expandConfig?: {
  height?: number;
};

dragRowConfig ​

Row drag configuration

ts
dragRowConfig?: {
  mode?: 'none' | 'insert' | 'swap';
};

cellFixedMode ​

Fixed header and column implementation method. [Non-reactive] relative: Fixed columns can only be placed on both sides of props.columns.

  • Use with caution if column width may change.
  • Use with caution for fixed columns in multi-level headers

Older browsers can only use 'relative',

ts
cellFixedMode?: 'sticky' | 'relative';

smoothScroll ​

Whether to enable smooth scrolling

  • default: chrome < 85 || chrome > 120 ? true : false
  • false: Use wheel event for scrolling. To prevent white screen caused by scrolling too fast.
  • true: Do not use wheel event for scrolling. Smoother scrolling with mouse wheel. May cause white screen when scrolling too fast.
ts
smoothScroll?: boolean;

scrollRowByRow ​

Scroll vertically by integer rows

  • scrollbar: Only effective when dragging the scrollbar, can be used to solve the white screen problem when dragging
ts
scrollRowByRow?: boolean | 'scrollbar';

scrollbar ​

Custom scrollbar configuration

  • false: Disable custom scrollbar
  • true: Enable custom scrollbar with default configuration
  • ScrollbarOptions: Enable and configure custom scrollbar
ts
scrollbar?: boolean | {
  /** Whether to enable scrollbar */
  enabled?: boolean;
  /** Vertical scrollbar width default: 8 */
  width?: number;
  /** Horizontal scrollbar height default: 8 */
  height?: number;
  /** Scrollbar thumb minimum width default: 20 */
  minWidth?: number;
  /** Scrollbar thumb minimum height default: 20 */
  minHeight?: number;
};

treeConfig ​

Tree configuration

ts
treeConfig?: {
  /** Whether to expand all tree nodes by default */
  defaultExpandAll?: boolean;
  /** Keys of nodes to expand by default */
  defaultExpandKeys?: UniqKey[];
  /** Level to expand to by default */
  defaultExpandLevel?: number;
};

experimental ​

Experimental configuration

ts
experimental?: {
  /** Use transform to simulate scroll */
  scrollY?: boolean;
};

footerData ​

Footer summary row data

ts
footerData?: DT[];

Released under the MIT License