W React (frameworku Facebooka) muszę wyrenderować element etykiety związany z wprowadzonym tekstem przy użyciu standardowego for
atrybutu.
np. używany jest następujący JSX:
<label for="test">Test</label>
<input type="text" id="test" />
Jednak powoduje to HTML bez wymaganego (i standardowego) for
atrybutu:
<label>Test</label>
<input type="text" id="test">
Co ja robię źle?
label
elementu (zgodnie z danymi przekazanymi przezdocument.createElement
,document.getElementById
itp) chcesz uzyskać dostęp do jegofor
właściwości jakolabel.htmlFor
.Tak, aby zareagować
for
staje sięhtmlFor
class
staje sięclassName
itp.
zobacz pełną listę zmian atrybutów HTML tutaj:
https://facebook.github.io/react/docs/dom-elements.html
źródło
W React musisz użyć słów kluczowych według definicji, aby zdefiniować atrybuty HTML.
jest używany i
jest używane, ponieważ w przypadku reagowania rozróżniana jest wielkość liter, upewnij się, że musisz przestrzegać małych i dużych nakładów zgodnie z wymaganiami.
źródło
zarówno
for
iclass
są zarezerwowane słowa w JavaScript to dlaczego, jeśli chodzi o atrybuty HTML w JSX trzeba użyć czegoś innego, React zespół postanowił wykorzystaćhtmlFor
iclassName
odpowiednioźródło
for
to słowo zarezerwowane w JavaScript, React elementy użyćhtmlFor
zamiast.": Reactjs.org/docs/dom-elements.html#htmlforpo prostu za pomocą zareaguj,
htmlFor
aby zastąpić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
źródło
To jest htmlFor w JSX, a class to className w JSX
źródło