Je compare les valeurs de stockage local avec les valeurs d'entrée. Si les valeurs sont correctes, je veux imprimer une alerte («connexion réussie»). Sinon alert ('login failed'). Parce que c'est une boucle, je dois en quelque sorte vérifier si l'alerte («connexion réussie») s'est déclenchée. Et sinon. Imprimer l'alerte ('échec de la connexion'). Des idées?
login(){ let data = JSON.parse(localStorage.getItem('data')); for (let index = 0; index < data.length; index++) { if(this.state.email === data[index].email && this.state.password === data[index].password){ alert("login successful"); } } }
3 Réponses :
Vous pouvez savoir si la connexion a réussi ou non avec une variable, et vérifier la valeur de cette variable après la boucle pour voir ce que vous devez alerter.
login() { const data = JSON.parse(localStorage.getItem("data")); let isSuccessful = false; for (let index = 0; index < data.length; index++) { if ( this.state.email === data[index].email && this.state.password === data[index].password ) { isSuccessful = true; break; } } if (isSuccessful) { alert("login successful"); } else { alert("login failed"); } }
Ajoutez simplement une variable à la boucle qui vérifie si la connexion a réussi?
login(){ let data = JSON.parse(localStorage.getItem('data')); let loginSuccessfull = false; for (let index = 0; index < data.length; index++) { if(this.state.email === data[index].email && this.state.password === data[index].password){ alert("login successful"); loginSuccessfull = true; } } if(!loginSuccessfull) { alert("login failed"); } }
Si cela correspond à l'e-mail et à pwd, affichez la boîte de dialogue réussie et renvoie
sinon affichez la boîte de dialogue infructueuse
login() { let data = JSON.parse(localStorage.getItem('data')); for (let index = 0; index < data.length; index++) { if (this.state.email === data[index].email && this.state.password === data[index].password) { alert("login successful"); return; } } alert("login Unsuccessful"); }
Pourriez-vous s'il vous plaît poster le code entier ou créer un codeandbox, ou un jsFiddle? Il est difficile de comprendre votre application et votre comportement en fonction de ce code, à quoi ressemblent vos
données
? pourquoi itérez-vous l'objet de données?Mon code n'est pas pertinent car mes entrées et mon stockage local fonctionnent. J'avais juste besoin d'aide avec la logique de boucle for.