diff --git a/packages/select/src/vaadin-select.js b/packages/select/src/vaadin-select.js index 79aecc535a..4c30a377ac 100644 --- a/packages/select/src/vaadin-select.js +++ b/packages/select/src/vaadin-select.js @@ -344,6 +344,10 @@ class Select extends DelegateFocusMixin(FieldMixin(SlotMixin(ElementMixin(Themab * It is not guaranteed that the update happens immediately (synchronously) after it is requested. */ requestContentUpdate() { + if (!this._overlayElement) { + return; + } + this._overlayElement.requestContentUpdate(); // Ensure menu element is set diff --git a/packages/select/test/renderer.test.js b/packages/select/test/renderer.test.js index e75b6c02ae..36f822872e 100644 --- a/packages/select/test/renderer.test.js +++ b/packages/select/test/renderer.test.js @@ -50,6 +50,11 @@ describe('renderer', () => { }; }); + it('should not throw when requesting content update before attaching to the DOM', () => { + const select = document.createElement('vaadin-select'); + expect(() => select.requestContentUpdate()).not.to.throw(Error); + }); + it('should run renderers when requesting content update', () => { select.renderer = sinon.spy(); select.opened = true;