В React (фреймворк Facebook) мне нужно отобразить элемент метки, привязанный к текстовому вводу, используя стандартный атрибут for
.
например. используется следующий JSX:
<label for="test">Test</label>
<input type="text" id="test" />
Однако это приводит к тому, что HTML не содержит требуемого (и стандартного) атрибута for
:
<label data-reactid=".1.0.0">Test</label>
<input type="text" id="test" data-reactid=".1.0.1">
Что я делаю неправильно?
Атрибут for
называется htmlFor
для согласованности с API свойств DOM. Если вы используете сборку разработки React, вы должны были увидеть предупреждение в своей консоли об этом.
Да, для реакции,
for становится htmlFor class становится классомName и т.д.
см. полный список изменений атрибутов HTML:
htmlFor
для замены for
!вы можете найти дополнительную информацию, следуя приведенным ниже ссылкам.
https://facebook.github.io/react/docs/dom-elements.html#htmlfor
Для React вы должны использовать его для определения ключевых слов для определения атрибутов html.
class
→className
и
for
→htmlFor
так как реакция чувствительна к регистру, убедитесь, что вы должны следовать за малым и капиталом по мере необходимости.
label
(как возвращеноdocument.createElement
,document.getElementById
и т. Д.), Вы получите доступ к его свойствуfor
какlabel.htmlFor
.