diff --git a/src/material-experimental/mdc-chips/chip-grid.ts b/src/material-experimental/mdc-chips/chip-grid.ts index 0b2ae83abd14..57add5da8653 100644 --- a/src/material-experimental/mdc-chips/chip-grid.ts +++ b/src/material-experimental/mdc-chips/chip-grid.ts @@ -357,7 +357,9 @@ export class MatChipGrid this._chips.forEach(chip => chip.primaryAction._updateTabindex(-1)); this._chips.first.focus(); } else { - this._focusInput(); + // Delay until the next tick, because this can cause a "changed after checked" + // error if the input does something on focus (e.g. opens an autocomplete). + Promise.resolve().then(() => this._chipInput.focus()); } this.stateChanges.next(); @@ -482,9 +484,4 @@ export class MatChipGrid this._lastDestroyedChipIndex = null; } - - /** Focus input element. */ - private _focusInput() { - this._chipInput.focus(); - } }