React игнорирует атрибут for элемента label

98

В 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">

Что я делаю неправильно?

Теги:
label
react-jsx

4 ответа

187
Лучший ответ

Атрибут for называется htmlFor для согласованности с API свойств DOM. Если вы используете сборку разработки React, вы должны были увидеть предупреждение в своей консоли об этом.

  • 0
    Спасибо Бен. Не могли бы вы объяснить «для согласованности с DOM API» для меня?
  • 13
    Если у вас есть элемент label (как возвращено document.createElement , document.getElementById и т. Д.), Вы получите доступ к его свойству for как label.htmlFor .
Показать ещё 7 комментариев
8

Да, для реакции,

for становится htmlFor class становится классомName и т.д.

см. полный список изменений атрибутов HTML:

https://facebook.github.io/react/docs/dom-elements.html

1

просто используя команду 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

1

Для React вы должны использовать его для определения ключевых слов для определения атрибутов html.

classclassName

и

forhtmlFor

так как реакция чувствительна к регистру, убедитесь, что вы должны следовать за малым и капиталом по мере необходимости.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню