Möchten Sie direkt zur Implementierung springen? Sehen Sie sich diese Beispiele an
TanStack Table bietet Zustände und APIs, die für die Implementierung von Spalten-Anheftungsfunktionen in Ihrer Tabellen-UI hilfreich sind. Sie können die Spalten-Anheftung auf verschiedene Arten implementieren. Sie können entweder angeheftete Spalten in eigene separate Tabellen aufteilen oder alle Spalten in derselben Tabelle belassen, aber den Anheftungszustand verwenden, um die Spalten korrekt zu ordnen und Sticky-CSS zu verwenden, um die Spalten links oder rechts anzuheften.
Es gibt 3 Tabellenfunktionen, die Spalten neu anordnen können, welche in der folgenden Reihenfolge stattfinden
Die einzige Möglichkeit, die Reihenfolge der angehefteten Spalten zu ändern, ist im columnPinning.left und columnPinning.right Zustand selbst. Der Zustand columnOrder beeinflusst nur die Reihenfolge der nicht angehefteten ("mittleren") Spalten.
Die Verwaltung des columnPinning Zustands ist optional und normalerweise nicht notwendig, es sei denn, Sie fügen persistente Zustandsfunktionen hinzu. TanStack Table verfolgt den Zustand der Spalten-Anheftung bereits für Sie. Verwalten Sie den columnPinning Zustand wie jeden anderen Tabellenzustand, wenn Sie ihn benötigen.
const [columnPinning, setColumnPinning] = useState<ColumnPinningState>({
left: [],
right: [],
});
//...
const table = useReactTable({
//...
state: {
columnPinning,
//...
}
onColumnPinningChange: setColumnPinning,
//...
});
const [columnPinning, setColumnPinning] = useState<ColumnPinningState>({
left: [],
right: [],
});
//...
const table = useReactTable({
//...
state: {
columnPinning,
//...
}
onColumnPinningChange: setColumnPinning,
//...
});
Ein sehr häufiger Anwendungsfall ist das Standardmäßige Anheften einiger Spalten. Sie können dies tun, indem Sie entweder den columnPinning Zustand mit den angehefteten columnIds initialisieren oder die Tabellenoption initialState verwenden
const table = useReactTable({
//...
initialState: {
columnPinning: {
left: ['expand-column'],
right: ['actions-column'],
},
//...
}
//...
});
const table = useReactTable({
//...
initialState: {
columnPinning: {
left: ['expand-column'],
right: ['actions-column'],
},
//...
}
//...
});
Hinweis: Einige dieser APIs sind neu in v8.12.0
Es gibt eine Handvoll nützlicher Spalten-API-Methoden, die Ihnen bei der Implementierung von Spalten-Anheftungsfunktionen helfen
Wenn Sie nur Sticky-CSS zum Anheften von Spalten verwenden, können Sie die Tabelle größtenteils wie gewohnt mit den Methoden table.getHeaderGroups und row.getVisibleCells rendern.
Wenn Sie jedoch angeheftete Spalten in eigene separate Tabellen aufteilen, können Sie die Methoden table.getLeftHeaderGroups, table.getCenterHeaderGroups, table.getRightHeaderGroups, row.getLeftVisibleCells, row.getCenterVisibleCells und row.getRightVisibleCells nutzen, um nur die für die aktuelle Tabelle relevanten Spalten zu rendern.
Ihre wöchentliche Dosis JavaScript-Nachrichten. Jeden Montag kostenlos an über 100.000 Entwickler geliefert.