Encyclopédie des erreurs

Champ orphelin dans les Signal Forms

Cette erreur indique qu'une instance de Field n'est plus connectée à la structure actuelle du model. Les Signal Forms d'Angular lèvent NG01902 lorsqu'un chemin de champ qui existait auparavant ne peut plus être résolu comme la même propriété de l'objet parent.

Un déclencheur fréquent est le fait de définir involontairement la valeur d'un champ à undefined. Dans les Signal Forms, undefined signifie « le champ n'existe pas », si bien qu'un champ existant peut devenir orphelin.

Pourquoi cela se produit

Les Signal Forms maintiennent les instances de champs synchronisées avec la forme de votre model. Si du code référence encore une ancienne instance de champ après un changement de forme du model, Angular détecte l'incohérence et lève cette erreur.

Cela peut arriver lorsque :

  • une propriété est supprimée de l'objet du model
  • une propriété devient undefined au lieu de rester présente
  • du code conserve une référence de champ obsolète au fil des mises à jour structurelles

Comment corriger

  • Évitez d'écrire undefined dans les champs du model. Utilisez null ou une autre valeur explicite lorsque le champ doit continuer d'exister.
  • Gardez la forme du model stable tant qu'un champ est utilisé.
  • Relisez les champs depuis l'arbre du formulaire actuel après des mises à jour structurelles au lieu de réutiliser des références obsolètes.

Pour des conseils sur la conception du model, consultez Éviter undefined.