React-js ігнорує атрибут 'for' мітки


75

Я знаю, що для 'class' ми повинні використовувати className, але як я можу реагувати на збереження атрибута 'for'?

Наступні:

<label for="recipient-name" className="control-label">Recipient:</label>

відображається як:

<label class="control-label">Recipient:</label>

на непов’язаній ноті мене дратує те, що я не можу змінювати атрибути за допомогою консолі chrome під час використання React. чи є спосіб обійти це? наприклад, якщо я перевіряю візуалізований елемент і додаю атрибут 'for' вручну, він зникає, коли я клацнув геть від цього елемента керування (можливо, тому, що реакція повторно робить елемент керування, про який я гадаю)


1
Непов’язана примітка: Ось просто так. React контролює DOM, а не щось зовні. Також перегляньте документи, де пояснюється, що використовувати замість for: facebook.github.io/react/docs/…
Фелікс Клінг,

6
Природно, що це через зарезервовані слова в javascript. forє зарезервованим словом і тому не може використовуватися як ключ json, саме в це аналізатор jsx перетворює ваші імена атрибутів jsx. З тієї ж причини, що classNameзамість class.
Mike Driver,

1
можливий дублікат елемента мітки React
WiredPrairie

Відповіді:


159

Ви повинні використовувати htmlForатрибут замість цього

<label htmlFor="recipient-name" className="control-label">Recipient:</label>

3

forє ключовим словом у javascript, тому в JSX ви не можете ним користуватися. Ви повинні використовувати, htmlForщо переведено в forатрибут, як тільки він буде наданий DOM.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.