Je viens de commencer à explorer React, en ajoutant un composant avec une fonction de rendu simple:
render() {
return <div class="myApp"></div>
}
Lorsque j'exécute l'application, j'obtiens l'erreur suivante:
Warning: Unknown DOM property class. Did you mean className?
Je peux résoudre ce problème en passant class
à className
.
La question est; React applique-t-il cette convention? Aussi pourquoi dois-je utiliser className
au lieu du conventionnel class
? S'il s'agit d'une restriction, est-ce dû à la syntaxe JSX ou ailleurs?
javascript
reactjs
react-jsx
jsalonen
la source
la source
Meteor utilise babel pour transpiler ES5 en ES6 (ES2015), nous pouvons donc le traiter comme une application Node normale avec le transpileur babel ajouté.
Vous devez ajouter un
.babelrc
fichier au dossier racine de votre projet et ajouter les éléments suivantsEt bien sûr, vous devez installer ce plugin en utilisant
npm
:la source
Dans React.js, il n'y a pas de propriétés for et class disponibles, nous devons donc utiliser
la source
Vous ne pouvez pas utiliser de classe pour un attribut de balise HTML car JS a une autre signification de classe. C'est pourquoi vous devez utiliser className au lieu de class.
Et utilisez également l'attribut htmlFor au lieu de for.
la source
En HTML, nous utilisons
mais dans React et ReactNative il n'y a pas de HTML, nous utilisons JSX (Javascript XML) ici nous utilisons
la source
La syntaxe JSX lorsqu'elle est compilée à l'aide de babel, la syntaxe sous-jacente qu'elle utilisera pour créer l'élément HTML sera
Si nous utilisons la classe au lieu de className, la réaction l'inférera en tant que classe javascript au lieu d'attribut de classe html. [Raison pour laquelle le nom de variable 'class' est déjà utilisé dans le fichier pour créer une classe javascript et est réservé dans le même but]. Ce qui est faux et le compilateur lève l'erreur, car la classe javascript n'est pas une propriété valide pour les éléments DOM html.
Par conséquent, il est nécessaire d'utiliser className au lieu de class.
la source