En React (marco de Facebook), necesito representar un elemento de etiqueta vinculado a una entrada de texto usando el for
atributo estándar .
por ejemplo, se utiliza el siguiente JSX:
<label for="test">Test</label>
<input type="text" id="test" />
Sin embargo, esto produce HTML que falta el for
atributo requerido (y estándar) :
<label>Test</label>
<input type="text" id="test">
¿Qué estoy haciendo mal?
label
elemento (tal como lo devuelvedocument.createElement
,document.getElementById
, etc.) es posible acceder a sufor
propiedad comolabel.htmlFor
.Sí, para reaccionar
for
se conviertehtmlFor
class
se convierteclassName
etc.
Vea la lista completa de cómo se cambian los atributos HTML aquí:
https://facebook.github.io/react/docs/dom-elements.html
fuente
Para React debe usar sus palabras clave por definición para definir atributos html.
se usa y
se utiliza, ya que reaccionar distingue entre mayúsculas y minúsculas, asegúrese de que debe seguir las letras pequeñas y mayúsculas según sea necesario.
fuente
ambos
for
yclass
son palabras reservadas en JavaScript, esta es la razón por la cual cuando se trata de atributos HTML en JSX necesita usar otra cosa, el equipo de React decidió usarhtmlFor
yclassName
respectivamentefuente
for
es una palabra reservada en JavaScript, los elementos React usanhtmlFor
en su lugar": reactjs.org/docs/dom-elements.html#htmlforsolo usando reaccionar
htmlFor
para reemplazarfor
!https://facebook.github.io/react/docs/dom-elements.html#htmlfor
https://github.com/facebook/react/issues/8483
https://github.com/facebook/react/issues/1819
fuente
Eso es htmlFor en JSX y class es className en JSX
fuente