React-js忽略标签的'for'属性


75

我知道对于“类”,我们必须使用className,但是我如何对保留“ for”属性做出反应?

以下:

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

呈现为:

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

在不相关的注释上,我发现使用React时无法使用chrome的控制台更改属性很烦人。有办法解决吗?例如,如果我检查渲染的元素并手动添加'for'属性,则当我单击该控件时,该属性就会消失(大概是因为react重新渲染了我猜测的控件)


1
不相关的说明:就是这样。React控制着DOM,而不是外部的东西。也有看文档,其中解释,而不是使用什么forfacebook.github.io/react/docs/...
费利克斯·克林

6
自然,这是因为javascript中的保留字。 for是保留字,因此不能用作json键,这就是jsx解析器将jsx属性名称转换成的名称。className代替的原因相同class
Mike Driver

Answers:


159

您必须htmlFor改为使用属性

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

3

for是javascript中的关键字,因此在JSX中不能使用它。一旦将其呈现到DOM htmlFor,则必须使用将其转换为for属性的属性。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.