Reagieren ignoriert 'für' - Attribut des label-Elements
In Reagieren (Facebook ' s framework), ich brauche zum Rendern ein label-element gebunden, um eine text-Eingabe mit dem standard - for
Attribut.
z.B. die folgenden JSX verwendet:
<label for="test">Test</label>
<input type="text" id="test" />
Jedoch, dies erzeugt HTML-fehlen die erforderlichen (und standard) for
Attribut:
<label data-reactid=".1.0.0">Test</label>
<input type="text" id="test" data-reactid=".1.0.1">
Was mache ich falsch?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
for
- Attribut wird aufgerufenhtmlFor
für die Konsistenz mit der DOM-Eigenschaft-API. Wenn Sie mit der development build zu Reagieren, die man gesehen haben sollte eine Warnung in der Konsole darüber.label
element (zurückgegeben durchdocument.createElement
,document.getElementById
usw) würden Sie den Zugriff auf Ihrefor
Eigenschaft alslabel.htmlFor
.htmlFor
ist das react-Attribut anstelle desfor
es sich möglicherweise nicht auf die Konsistenz ankommt, sondern weilfor
ist ein reserviertes Wort in Javascript (und Reagieren, verwendet Javascript zum Rendern). Das ist zumindest der Grund, den Angaben des [facebook.github.io/reagieren/docs/... - Dokumentation)Ja, für reagieren,
wird htmlFor
Klasse className wird
etc.
vollständige Liste finden Sie, wie HTML-Attribute geändert werden, hier:
https://facebook.github.io/react/docs/dom-elements.html
Für Reagieren, müssen Sie es pro-definieren Sie Schlüsselwörter für die Definition von html-Attributen.
verwendet wird und
verwendet wird, wie reagieren-und Kleinschreibung stellen Sie sicher, dass Sie Folgen müssen kleine und Kapital erforderlich.
nur mit reagieren
htmlFor
zu ersetzenfor
!https://facebook.github.io/react/docs/dom-elements.html#htmlfor
https://github.com/facebook/react/issues/8483
https://github.com/facebook/react/issues/1819
Ist htmlFor in JSX und Klasse className in JSX