Dans React (le cadre de Facebook), j'ai besoin de rendre un élément d'étiquette lié à une entrée de texte en utilisant l' for
attribut standard .
Par exemple, le JSX suivant est utilisé:
<label for="test">Test</label>
<input type="text" id="test" />
Cependant, cela produit du HTML sans l' for
attribut requis (et standard) :
<label>Test</label>
<input type="text" id="test">
Qu'est-ce que je fais mal?
label
élément (comme retourné pardocument.createElement
,document.getElementById
, etc.) que vous souhaitez accéder à safor
propriété commelabel.htmlFor
.Oui, pour réagir,
for
devienthtmlFor
class
devientclassName
etc.
voir la liste complète de la façon dont les attributs HTML sont modifiés ici:
https://facebook.github.io/react/docs/dom-elements.html
la source
Pour React, vous devez utiliser ses mots clés par définition pour définir les attributs html.
est utilisé et
est utilisé, comme react est sensible à la casse, assurez-vous que vous devez suivre petit et capital comme requis.
la source
les deux
for
etclass
sont des mots réservés en JavaScript, c'est pourquoi en ce qui concerne les attributs HTML dans JSX, vous devez utiliser autre chose, l'équipe React a décidé d'utiliserhtmlFor
etclassName
respectivementla source
for
c'est un mot réservé en JavaScript, les éléments React utilisent à lahtmlFor
place.": Reactjs.org/docs/dom-elements.html#htmlforil suffit d'utiliser réagir
htmlFor
pour remplacerfor
!https://facebook.github.io/react/docs/dom-elements.html#htmlfor
https://github.com/facebook/react/issues/8483
https://github.com/facebook/react/issues/1819
la source
C'est htmlFor dans JSX et la classe est className dans JSX
la source