Table
ui.widgets.TableUna tabla básica con columnas fijas y celdas personalizadas.
BEHAVIOR CONTRACT
El ancho de columnas, la cabecera, las filas alternas, la ordenación y la vida de las celdas son asuntos separados.
RECORDED INTERACTION
Muestra ocho filas reales y columnas ordenables.
pub fn buildTable(scope: *ui.Scope, cx: *ui.Cx) anyerror!*ui.Node {
const cols = [_]W.ColumnDef{
.{ .id = "name", .header = "Name", .width = 160 },
.{ .id = "role", .header = "Role", .width = 120 },
.{ .id = "age", .header = "Age", .width = 80, .sortable = true },
};
const t = try W.Table(.{ .columns = &cols, .row_count = 8, .striped = true, .render_cell = tableCell }).mount(scope, cx);
return t.wrapper;
}El código literal de la story en el Storybook (zenit 5f9add5+wip 2026-09-30). W es ui.widgets; col / row / label son pequeños helpers de layout del Storybook.
TableProps
ui.widgets.Tablefn Table(props: TableProps) TableBuilderCampo
Tipo
Predeterminado
Descripción
columns[]const ColumnDef&.{}—
row_countusize0—
row_heightf3236—
header_heightf3240—
stripedboolfalse—
hoverablebooltrue—
table_width?f32null—
table_heightf32400—
render_cell?CellRenderFnnull—
on_sort?core.HandlerRefnull—
on_row_click?core.HandlerRefnull—
TableResult
ui.widgets.TableCampo
Tipo
Predeterminado
Descripción
wrapper*Node—
—
state*TableState—
—
vl_state?*VirtualListStatenull虚拟滚动模式下的 VirtualListState(可用于动态更新 row_count)