diff --git a/core/src/components/select/select.tsx b/core/src/components/select/select.tsx index e20edb9c067..9245e3f9abb 100644 --- a/core/src/components/select/select.tsx +++ b/core/src/components/select/select.tsx @@ -241,10 +241,6 @@ export class Select implements ComponentInterface { this.ionChange.emit({ value }); } - componentWillLoad() { - this.inheritedAttributes = inheritAttributes(this.el, ['aria-label']); - } - async connectedCallback() { const { el } = this; @@ -270,6 +266,24 @@ export class Select implements ComponentInterface { }); } + componentWillLoad() { + this.inheritedAttributes = inheritAttributes(this.el, ['aria-label']); + } + + componentDidLoad() { + /** + * If any of the conditions that trigger the styleChanged callback + * are met on component load, it is possible the event emitted + * prior to a parent web component registering an event listener. + * + * To ensure the parent web component receives the event, we + * emit the style event again after the component has loaded. + * + * This is often seen in Angular with the `dist` output target. + */ + this.emitStyle(); + } + disconnectedCallback() { if (this.mutationO) { this.mutationO.disconnect();