0
votes

Erreur angulaire TypeError: Impossible de lire la propriété 'ISD_Code' de NULL

composant.ts xxx

ici dans userprofile the téléphone_number et enfant téléphone_number et et isd_code ne sont pas disponibles initialement. Donc, lorsque j'essaie de modifier la page de profil, je reçois l'erreur

erreur TypeError: Impossible de lire la propriété 'ISD_Code' de NULL au profiléditComponent.ngoninit

Dans HTML, j'utilise l'opérateur de navigation sécurisée, mais ici, je dois définir les valeurs dans FormBuilder sinon la validation échoue même si la valeur est définie.

J'ai essayé de vérifier si la propriété est indéfinie mais elle ne fonctionne pas this.userprofile.phone_number.isd_code! = Non défini .


5 commentaires

Pouvez-vous faire [this.userprofile.phone_number && this.userprofile.phone_number.isd_code || null]


@Callback non, ça ne résout pas le problème


Mais votre chèque this.userprofile.phone_number.isd_code! = Non défini échouera au même endroit que le formulaire FormBuilder - si Phone_Number est indéfini / null. Vous n'avez aucun problème d'indéfini isd_code , vous avez un problème de l'objet une étape supérieure.


vous pouvez simplement consoler.log (this.userprofile) au-dessus de Ngoninit et voir si ISD_Code existe


"Ici dans UserProfile The Phone_Number et enfant Téléphone_number et ISD_Code ne sont pas disponibles initialement" - Ensuite, je vois un autre problème à l'horizon: vous devez gérer les modifications d'entrée non dans ngoninit (qui est tiré une fois et gagné " t être à nouveau), mais dans Ngonchanges .


3 Réponses :


1
votes

Utiliser un opérateur de navigation sécurisé ? CODE> STRONY> OU OPERATEUR TERNAIRE POUR TYPESSIVANT

ESSAYEZ Ceci: P>

isd_code: [(this.userProfile)?(this.userProfile.phone_number ? this.userProfile.phone_number.isd_code : null) : null],


3 commentaires

Cet opérateur est disponible dans des modèles et non dans le TS.


@ADrita Sharma comme je l'ai mentionné dans ma question, cela ne fonctionne pas dans TS


@ADRITASHARMA Cela ne fonctionne pas si le numéro de téléphone n'est pas défini. Désolé de ne pas mentionner en poste. Va éditer le message maintenant



0
votes

Pourquoi ne pas l'initialiser avec un objet vide.

@Input() userProfile: any= new UserProfile();


2 commentaires

Cela fonctionnera-t-il si j'ai déjà créé un modèle pour UserProfile


Si vous avez déjà créé un modèle avec des valeurs prépopulées, utilisez ce modèle à attribuer à votre UserProfile, assurez-vous de disposer des champs initialisés à certaines valeurs.



1
votes

Le problème dans ce cas peut être que le this.userprofile.phone_number a une valeur de null et que vous essayez d'accéder à une propriété d'un élément avec NULL valeur. Vous devriez vérifier la valeur de this.userprofile.phone_number avant d'essayer d'accéder à une propriété: xxx


0 commentaires