reactjs React忽略label元素的“for”属性

xfyts7mz  于 2023-01-17  发布在  React
关注(0)|答案(6)|浏览(166)

在React(Facebook的框架)中,我需要使用标准的for属性呈现绑定到文本输入的label元素。
例如,使用以下JSX:

<label for="test">Test</label>
<input type="text" id="test" />

但是,这会生成缺少必需(和标准)for属性的HTML:

<label>Test</label>
<input type="text" id="test">

我哪里做错了?

jogvjijk

jogvjijk1#

for属性被称为htmlFor是为了与DOM属性API保持一致,如果您使用的是React的开发版本,您应该已经在控制台中看到了这方面的警告。

oalqel3c

oalqel3c2#

是的,React,
for变为htmlFor
class变为className
等等。
查看如何更改HTML属性的完整列表:
https://facebook.github.io/react/docs/dom-elements.html

brvekthn

brvekthn3#

对于React,您必须使用它的per-define关键字来定义html属性。
class-〉className
被使用并且
for-〉htmlFor
使用,因为react区分大小写,请确保必须按照要求使用小写和大写。

oaxa6hgo

oaxa6hgo4#

forclass都是JavaScript中的保留字,这就是为什么在JSX中使用HTML属性时需要使用其他属性的原因,React团队决定分别使用htmlForclassName

vfwfrxfs

vfwfrxfs5#

只是使用react htmlFor来替换for

由于for是JavaScript中的保留关键字,因此React元素使用htmlFor

参考

你可以通过下面的链接找到更多信息。
https://facebook.github.io/react/docs/dom-elements.html#htmlfor
https://github.com/facebook/react/issues/8483
https://github.com/facebook/react/issues/1819

mbyulnm0

mbyulnm06#

在JSX中为htmlFor,在JSX中为className

相关问题