6
votes

Les valeurs de FALSY dans JSX réagissent

J'apprends réagi et j'essaie de passer une propriété à un composant.

code est comme suit - xxx

cela fonctionne, mais remarquez la partie où j'ai Pour injecter False comme JavaScript enveloppé dans des accolades bouclées.

Mon doute est que JSX ne reconnaît pas la chaîne de «FALSE» comme valeur FALSY comme dans la normale JS?

Raison de la demande Comparaison avec NG-Show = "False" en angulaire, qui cache l'élément, mais comme indiqué dans un commentaire qui pourrait être parce que la directive NG-Show évalue manuellement "Faux" comme valeur FALSY.


4 commentaires

Est-ce que JSX ne reconnaît pas la chaîne de «FALSE '» comme valeur FALSY ... Vous passez Boolean , pas la chaîne est Signédin PROP qui sera considéré comme considéré < code> faux


Oui, mais en passant de HTML, vous passez même booléen comme profen = "false" , il n'y a pas de booléen comme tel dans HTML


JSX n'est pas un langage de programmation. Donc, quelle que soit la logique que vous écrivez à l'intérieur est JavaScript. Donc, toutes les règles de JavaScript seront applicables là-bas.


Ma raison de poser cette question était la comparaison avec la directive NG-Show en angulaire, donc lorsque vous faites NG-show = "False", l'élément disparaît, mais je l'obtiens maintenant, angular doit évaluer manuellement la falsification de la valeur FALSY.


3 Réponses :


1
votes

Aucun JavaScript ne compare pas un FALSY String avec FALSE , si vous souhaitez le faire, vous pouvez simplement le faire en cochant la condition IF et ne fournissant pas le FALSY Boolean Value comme un accessoire. xxx

et un cas de véracité comme xxx


0 commentaires

1
votes

Tous false , 0 , cordes vides '' ' et "" , nan , non défini et null sont toujours évalués comme faux; tout le reste est vrai.

JSX ne fournit rien en soi à l'exception du système de modèles. Donc, sa base sur JavaScript et non le JSX.

Donc, dans votre exemple, vous pouvez simplement supprimer le == false et JavaScript évaluera tous ces modèles pour vous.

D'ici comment vous pouvez regarder NG-Masquer la source dans ce lien pour en savoir plus

https://github.com /angular/angular.js/blob/master/src/ng/directif/ngshowhide.js

et aussi en savoir plus sur l'opérateur ici


0 commentaires

7
votes

N'oubliez pas de corriger le nom du composant, Il devrait commencer par des lettres majuscules .

p>


Les conditions n'ont rien à voir avec JSX code>, comme mentionné dans d'autres commentaires et réponses. C'est juste comment fonctionne JavaScript. P>

Veuillez noter strong>, chose importante à retenir:
Jamais un double égal ( == code>) aka " Équilibre abstrait " contre un booléen, cela demande des insectes. P>

Parce que le moteur fera une coercition de type uniquement sur la valeur booléenne et cela peut conduire à un comportement inattendu. p>

Par exemple, P>

<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="root"></div>


0 commentaires