Problem:
Beim Definieren der Tabellenspalten wird das Property type: 'action' in einer Spalte und das Property render in einer anderen verwendet. Wenn zur Laufzeit durch die Tabellenkonfiguration die Reihenfolge der Spalten geändert wird (beispielsweise indem die Spalte mit der Action an eine andere Position verschoben wird), werden die Inhalte nicht mehr korrekt in der zugehörigen Spalte gerendert.
Relevanter Code
Beispiele für die Nutzung von type: 'action' und render:
// Action-Column Beispiel:
// packages/samples/react/src/components/table/action-columns.tsx
{
type: 'action',
key: 'actions',
label: 'Actions',
actions: (row) => { /* ... */ },
},
// Render-Property Beispiel:
// packages/samples/react/src/components/table/render-cell.tsx
{
label: 'Action (react)',
width: 200,
render: (el) => {
getRoot(createReactRenderElement(el)).render(/* ... */);
},
}
Die interne Logik, wie Action- und Render-Spalten behandelt werden, kann in der Table-Komponente gefunden werden:
// packages/components/src/components/table-stateless/component.tsx
private readonly renderActionItems = (actionColumn: ActionColumnHeaderCell, rowData: KoliBriTableDataType, key: string): JSX.Element => {
const actions = actionColumn.actions(rowData);
return (
<div class="kol-table__cell-actions">
{actions.map((action, actionIndex) => {
if (action.type === 'button') {
// ...
}
})}
</div>
);
}
Schritte zur Reproduktion:
- Es werden Tabellenspalten definiert, wobei in einer Spalte das Property
type: 'action' und in einer anderen das Property render verwendet wird.
- Die Reihenfolge der Spalten wird zur Laufzeit über die Konfiguration geändert, sodass die Action-Spalte ihre Position wechselt.
- Es wird die Tabelle beobachtet – die Inhalte werden anschließend nicht mehr konsistent der Spalte zugeordnet.
Erwartetes Verhalten:
Es soll sichergestellt werden, dass die Inhalte stets korrekt in der jeweiligen Spalte gerendert werden, unabhängig von der Anordnung der Spalten.
Tatsächliches Verhalten:
Nach dem Ändern der Spaltenreihenfolge wird festgestellt, dass die Zelleninhalte nicht mehr den richtigen Spalten entsprechen, insbesondere bei Action- und Render-Spalten.
KOLIBRI-766
Problem:
Beim Definieren der Tabellenspalten wird das Property
type: 'action'in einer Spalte und das Propertyrenderin einer anderen verwendet. Wenn zur Laufzeit durch die Tabellenkonfiguration die Reihenfolge der Spalten geändert wird (beispielsweise indem die Spalte mit der Action an eine andere Position verschoben wird), werden die Inhalte nicht mehr korrekt in der zugehörigen Spalte gerendert.Relevanter Code
Beispiele für die Nutzung von
type: 'action'undrender:Die interne Logik, wie Action- und Render-Spalten behandelt werden, kann in der Table-Komponente gefunden werden:
Schritte zur Reproduktion:
type: 'action'und in einer anderen das Propertyrenderverwendet wird.Erwartetes Verhalten:
Es soll sichergestellt werden, dass die Inhalte stets korrekt in der jeweiligen Spalte gerendert werden, unabhängig von der Anordnung der Spalten.
Tatsächliches Verhalten:
Nach dem Ändern der Spaltenreihenfolge wird festgestellt, dass die Zelleninhalte nicht mehr den richtigen Spalten entsprechen, insbesondere bei Action- und Render-Spalten.
KOLIBRI-766