Pourquoi cela renvoie-t-il toujours un non défini dans réagir avec REDUX?
searchCustomer = id =>{
customers = [...this.props.data];
customers.forEach(customer=>){if(customer.id === id){return customer}};
}
customerDetails = e =>{
const customer = this.searchCustomer(id);
console.log(customer);
}
3 Réponses :
Vous ne retournez rien à partir de SearchComptomer code>. Il devrait être
Vous ne pouvez pas retourner la valeur de la boucle Foreach code> comme ça ... Essayez d'utiliser code> Find CODE> Fonction, c'est MUHC plus facile ... searchCustomer = id => {
return this.props.data.find(customer => customer.id === id)
}
customerDetails = e => {
const customer = this.searchCustomer(id);
console.log(customer);
}
Pourquoi filtre et non code> trouver`?
Trouvez l'arrêt lorsque la première condition de rappel est vraie, le but est de trouver tous les clients avec cet identifiant, je suppose. Vous pouvez réduire le code en faisant ceci: id => [... ceci.props.data] .filter (client => client.id === id); code>
Vous pouvez utiliser trouver code> aussi, il s'arrêtera après avoir trouvé un
Code mis à jour avec Rechercher et utiliser directement cela.props.data sans copier les données
@ Yanis-git: le code d'origine a un code> retour code> (singulier) à l'intérieur d'un foreach code> (qui termine la boucle tôt); De plus (bien que non explicitement une partie de la question), un ID code> qui correspond à plusieurs objets n'est pas vraiment un ID code>. Quelle est la base de votre opinion que l'objectif ici est de trouver tous les clients avec ce ID code>?
Parce que vous ne pouvez pas retourner dans changer sur p> foreach code>
Merci beaucoup plus facile!
foreach (client =>) code> doit être une erreur de syntaxe. Êtes-vous sûr que votre code est ce que vous nous montrez?