diff --git a/packages/field/src/FormRegistrarMixin.js b/packages/field/src/FormRegistrarMixin.js index e31906d42..a1e283d76 100644 --- a/packages/field/src/FormRegistrarMixin.js +++ b/packages/field/src/FormRegistrarMixin.js @@ -25,6 +25,7 @@ export const FormRegistrarMixin = dedupeMixin( super(); this.formElements = []; this.__readyForRegistration = false; + this.__hasBeenRendered = false; this.registrationReady = new Promise(resolve => { this.__resolveRegistrationReady = resolve; }); @@ -38,6 +39,9 @@ export const FormRegistrarMixin = dedupeMixin( super.connectedCallback(); } formRegistrarManager.add(this); + if (this.__hasBeenRendered) { + formRegistrarManager.becomesReady(); + } } disconnectedCallback() { @@ -55,7 +59,8 @@ export const FormRegistrarMixin = dedupeMixin( super.firstUpdated(changedProperties); this.__resolveRegistrationReady(); this.__readyForRegistration = true; - formRegistrarManager.becomesReady(this); + formRegistrarManager.becomesReady(); + this.__hasBeenRendered = true; } addFormElement(child) {