Utilisation de la méthode find() en React #
Pour utiliser la méthode find() dans React :
- Appeler
find()
sur un tableau. - A chaque itération, vérifier si l’élément correspond à une condition.
- Rendu du résultat.
const App = () => {
const employees = [
{id: 1, name: 'Alice'},
{id: 2, name: 'Bob'},
{id: 3, name: 'Carl'},
];
const found = employees.find(element => {
return element.id === 2;
});
console.log(found);
return (
<div>
<div>{found && <h2>{found.name}</h2>}</div>
</div>
);
};
export default App;
La fonction que nous avons passée à la fonction
trouver
est appelée pour chaque élément du tableau.
Si la fonction de rappel renvoie une valeur véridique, la méthode court-circuite et renvoie l’élément correspondant du tableau.
Si la fonction callback ne retourne jamais une valeur vraie, la méthode find()
retourne
undefined
.
Dans la fonction de l’exemple, nous vérifions si la fonction id
de l’objet est
égale à 2
et renvoie le résultat.
const found = employees.find(element => {
return element.id === 2;
});
console.log(found);
Si la condition n’est jamais satisfaite, le find()
retourne undefined
donc
nous devons vérifier avant d’essayer d’accéder à une propriété de l’objet.
<div>
<div>{found && <h2>{found.name}</h2>}</div>
</div>
Nous avons utilisé la méthode
ET logique (&& 😉
avant d’accéder à l’objet name
sur l’objet, car si la propriété
found
stocke un undefined
nous obtiendrions une erreur d’exécution.
L’opérateur logique AND (&& 😉 renvoie la valeur de droite si la valeur de gauche est vraie.
Si la found
stocke un undefined
l’opérateur renvoie
undefined
.
Nous pouvons utiliser cette approche car
les booléens, null et undefined sont ignorés.
Ils ne sont tout simplement pas rendus.
Les expressions JSX suivantes ne donnent rien.
<div />
<div></div>
<div>{false}</div>
<div>{null}</div>
<div>{undefined}</div>
<div>{true}</div>