javascript - Warnung: Unbekannte DOM-Eigenschaft class. Meinten Sie className?
Ich habe gerade angefangen, React zu erkunden, indem ich eine Komponente mit einer einfachen Render-Funktion hinzugefügt habe:
render() {
return <div class="myApp"></div>
}
Wenn ich die App starte, erhalte ich den folgenden Fehler:
Warning: Unknown DOM property class. Did you mean className?
Ich kann dies lösen, indem ich class in className ändere.
Die Frage ist: Erzwingt React diese Konvention? Und warum muss ich className anstelle des herkömmlichen class verwenden? Wenn dies eine Einschränkung ist, liegt es dann an der JSX-Syntax oder an einem anderen Grund?
Antwort #1
Ja, es ist eine React-Konvention:
Da JSX JavaScript ist, werden Bezeichner wie
classundforals XML-Attributnamen nicht empfohlen. Stattdessen erwarten React-DOM-Komponenten DOM-Eigenschaftsnamen wieclassNamebzw.htmlFor.
JSX im Detail.
Antwort #2
In React.js gibt es keine for- und Klassen-Eigenschaften, daher müssen wir verwenden
for --> htmlFor
class --> className
Antwort #3
Meteor verwendet Babel, um ES5 in ES6 (ES2015) zu transpilen, sodass wir es wie eine normale Node-Anwendung mit hinzugefügtem Babel-Transpiler behandeln können.
Sie müssen eine .babelrc-Datei zum Stammordner Ihres Projekts hinzufügen und die folgenden Elemente hinzufügen
{
"plugins": [
"react-html-attrs"
]
}
Und natürlich müssen Sie dieses Plugin mit npm installieren:
npm install --save-dev babel-plugin-react-html-attrs
Antwort #4
In HTML verwenden wir
class="navbar"
aber in React und ReactNative gibt es kein HTML, wir verwenden hier JSX (Javascript XML)
className="navbar"
