J'essaie de rendre un composant uniquement si erreur: p> Asset.Id === Collection.MasterSetideD code>. Si tel est le cas, une icône STAR devrait apparaître. J'utilise la fonction gettersterid code> pour vérifier cette condition. Toute personne qui sait ce que l'erreur est ici?
4 Réponses :
Syntaxe que vous utilisez est faux, changez-le à
{ asset.id === this.getMasterId(asset.id) && <FaStar /> }
Ok excellent maintenant, je reçois cela: TypeError: Impossible de lire la propriété 'MasterAssète »de non définie. Une idée pourquoi?
Vous ne pouvez pas utiliser de relevés dans le code en ligne dans la déclaration de retour. Vous ne pouvez utiliser que des expressions.
une instruction IF est une déclaration, vous devez donc la remplacer par une expression telle que l'opérateur ternaire ou: p> Soyez prudent lorsque vous utilisez le conditionnel et Dans ces cas, il est préférable de se lancer dans un booléen: P> x? y: z code> ou conditionnel et opérateur && code>: p> && code>, comme si le premier argument est le numéro 0 code> (par exemple, list.length && 0 code> au lieu de rien. P> !!list.length && <Component />
ok excellent maintenant je reçois cela: TypeError: impossible de lire la propriété 'MasterAssetid' de non définie
this.state.collectionsR.Find (element => élément.masterassetid === ASSETNR) .masterassetided code>. array.find code> retournera non défini code> si rien ne correspond à la condition. Assurez-vous de vérifier que l'objet existe avant d'essayer d'accéder à une propriété.
Voir si cela fonctionne
p>
(asset.id === this.getMasterId(asset.id)) ? <FaStar /> : <></>;
Ok excellent maintenant, je reçois cela: TypeError: Impossible de lire la propriété 'MasterAssète »de non définie. Une idée pourquoi?
Dans le code de retour de la fonction de rendu, vous ne pouvez utiliser que des expressions (des choses autorisées sur le côté droit d'un équivalent). Cependant, une expression ternaire est autorisée. Cela ressemblerait alors à ceci: p> si code> est une déclaration, il n'est donc pas permis. Exemple que
Ok excellent maintenant, je reçois cela: TypeError: Impossible de lire la propriété 'MasterAssète »de non définie. Une idée pourquoi?
Essayez d'utiliser l'opérateur ternaire
x? Y: z code> au lieu d'une instruction IF, ou du conditionnel et de l'opérateur&& code>Avez-vous effectué la recherche: "Rendu conditionnel réagissant"? Premier résultat: réactjs.org/docs/conditionnement-rending.html
Ok excellent maintenant, je reçois cela: TypeError: Impossible de lire la propriété 'MasterAssète »de non définie. Une idée pourquoi?
@CHARLESBXL bien cela signifie
élément code> est indéfini. Ce qui signifie qu'il y a un "problème" avec votrecollectionsR code>. Avez-vous des éléments dedans?Si vous obtenez une solution de la réponse, veuillez envisager de le marquer correctement