J'apprends réagi et j'essaie de passer une propriété à un composant.
code est comme suit - p> cela fonctionne, mais remarquez la partie où j'ai Pour injecter False comme JavaScript enveloppé dans des accolades bouclées. P> Mon doute est que JSX ne reconnaît pas la chaîne de «FALSE» comme valeur FALSY comme dans la normale JS? P> 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. P> P>
3 Réponses :
Aucun JavaScript ne compare pas un et un cas de véracité comme p> FALSY String code> avec
FALSE code>, 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.
Tous JSX ne fournit rien en soi à l'exception du système de modèles. Donc, sa base sur JavaScript et non le JSX. P>
Donc, dans votre exemple, vous pouvez simplement supprimer le D'ici comment vous pouvez regarder NG-Masquer la source dans ce lien pour en savoir plus P>
https://github.com /angular/angular.js/blob/master/src/ng/directif/ngshowhide.js P>
et aussi en savoir plus sur l'opérateur ici a> p> false code>,
0 code>, cordes vides
'' ' code> et
"" code>,
nan code>,
non défini code> et
null code> sont toujours évalués comme faux; tout le reste est vrai. p>
== false code> et JavaScript évaluera tous ces modèles pour vous. P>
N'oubliez pas de corriger le nom du composant, Il devrait commencer par des lettres majuscules .
p>
Les conditions n'ont rien à voir avec Veuillez noter strong>, chose importante à retenir: 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> JSX code>, comme mentionné dans d'autres commentaires et réponses. C'est juste comment fonctionne JavaScript. P>
Jamais un double égal ( == code>) aka " Équilibre abstrait " contre un booléen, cela demande des insectes. 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>
Est-ce que JSX ne reconnaît pas la chaîne de «FALSE '» comme valeur FALSY ... I> Vous passez
Boolean code>, pas la chaîne est
Signédin code> PROP qui sera considéré comme considéré < code> faux code>
Oui, mais en passant de HTML, vous passez même booléen comme
profen = "false" code>, 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.