Discussions

opérateur logique && erreur

Image

Bonjour,

 

 

Si j'écris ceci ça fonctionne 

 {errors.pseudo && errors.pseudo.type === "required" && (
                <small>Veuillez renseigner ce champs</small>
              )}

 

en revanche si j'écris ceci , j'ai un message d'erreur (TypeError: Cannot read properties of undefined (reading 'type')), je ne comprends pas pourquoi vu que c'est la même ligne de code avec un element en moins

 {errors.pseudo.type === "required" && (
                <small>Veuillez renseigner ce champs</small>
              )}

 

Merci d'avance

2 réponses
Image
Louis-Nicolas Leuillet
Le 26/03/2023 à 13:20

Hello

 

En fait c'est un problème qu'on rencontre lorsque React est en train de lire notre application (il éxecute le code parfois avant qu'on reçoive une réponse).

 

Dans la première ligne de code, vous avez ajouté une vérification supplémentaire pour vous assurer que "errors.pseudo" est défini en utilisant la condition "errors.pseudo &&". Si "errors.pseudo" est indéfini, la condition est fausse et le reste de la ligne de code n'est pas évalué, ce qui évite une erreur.

 

Dans la seconde ligne de code, vous n'avez pas ajouté de vérification pour vous assurer que "errors.pseudo" est défini. Par conséquent, si "errors.pseudo" est indéfini, la tentative d'accéder à la propriété "type" provoquera l'erreur que vous avez rencontrée.

 

Pour résoudre cette erreur, vous pouvez ajouter une vérification pour vous assurer que "errors.pseudo" est défini avant d'essayer d'accéder à la propriété "type". Vous pouvez utiliser la même condition que dans la première ligne de code pour cela :

 

{errors.pseudo && errors.pseudo.type === "required" && (

<small>Veuillez renseigner ce champ</small>

)}
Image
Jean-luc Crobeddu
Le 26/03/2023 à 18:30

merci je comprends maintenant. Je pensais que même si la première condition était fausse on testait la deuxieme, si le code s'arrête je comprends mieux.

Image
Inscrivez-vous ou connectez-vous pour participer à la discussion.

Informations

Créée le 24 mars 2023 15:54
Dernière activité le 24 mars 2023 15:54