В React (платформа Facebook) мне нужно визуализировать элемент метки, привязанный к вводу текста, используя стандартный for
атрибут.
например, используется следующий JSX:
<label for="test">Test</label>
<input type="text" id="test" />
Однако это приводит к тому, что в HTML отсутствует обязательный (и стандартный) for
атрибут:
<label>Test</label>
<input type="text" id="test">
Что я делаю не так?
label
элемент (как возвращеноdocument.createElement
,document.getElementById
и т. Д.), Вы получите доступ к егоfor
свойству какlabel.htmlFor
.Да, для реакции,
for
становитсяhtmlFor
class
становитсяclassName
и т.п.
полный список того, как атрибуты HTML изменяются здесь:
https://facebook.github.io/react/docs/dom-elements.html
источник
Для React вы должны использовать его ключевые слова для определения атрибутов HTML.
используется и
используется, так как реагирует с учетом регистра, убедитесь, что вы должны следовать маленьким и прописным.
источник
оба
for
иclass
зарезервированные слова в JavaScript, поэтому, когда дело доходит до атрибутов HTML в JSX, вам нужно использовать что-то другое, команда React решила использоватьhtmlFor
иclassName
соответственноисточник
for
как в JavaScript зарезервированное слово,htmlFor
вместо него используются элементы React »: reactjs.org/docs/dom-elements.html#htmlforпросто использовать реагировать
htmlFor
на заменуfor
!https://facebook.github.io/react/docs/dom-elements.html#htmlfor
https://github.com/facebook/react/issues/8483
https://github.com/facebook/react/issues/1819
источник
Это htmlFor в JSX и className в JSX
источник