diff --git a/packages/table/src/Table.ts b/packages/table/src/Table.ts index 84c5f742a1..bd6576ca1b 100644 --- a/packages/table/src/Table.ts +++ b/packages/table/src/Table.ts @@ -443,6 +443,9 @@ export class Table extends SizedMixin(SpectrumElement, { } protected renderVirtualizedItems(index?: number): void { + // Rendering updates into the table while disconnected can + // cause runaway event binding in ancestor elements. + if (!this.isConnected) return; if (!this.tableBody) { this.tableBody = this.querySelector('sp-table-body') as TableBody; if (!this.tableBody) { @@ -478,4 +481,11 @@ export class Table extends SizedMixin(SpectrumElement, { this.tableBody ); } + + public override disconnectedCallback(): void { + if (this.tableBody) { + render(html``, this.tableBody); + } + super.disconnectedCallback(); + } }