【问题标题】:React-js ignores label's 'for' attributeReact-js 忽略标签的 'for' 属性
【发布时间】:2015-05-23 13:19:51
【问题描述】:

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

以下内容:

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

呈现为:

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

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

【问题讨论】:

  • Re不相关的说明:就是这样。 React 控制 DOM,而不是外部的东西。还可以查看文档,其中解释了使用什么而不是 forfacebook.github.io/react/docs/…
  • 这自然是因为 javascript 中的保留字。 for 是保留字,因此不能用作 json 键,这是 jsx 解析器将您的 jsx 属性名称转换成的。同样的原因是 className 而不是 class
  • React label element的可能重复

标签: javascript reactjs


【解决方案1】:

for 是 javascript 中的关键字,所以在 JSX 中你不能使用它。你必须使用htmlFor,一旦它被渲染到DOM,它就会被翻译成for属性。

【讨论】:

    【解决方案2】:

    您必须改用htmlFor 属性

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

    【讨论】:

      猜你喜欢
      • 2014-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-23
      • 1970-01-01
      • 2019-01-20
      • 1970-01-01
      相关资源
      最近更新 更多