警告:未知的DOM属性类。您是说className吗?

我刚刚开始通过添加带有简单渲染功能的组件来探索React:

render() {
  return <div class="myApp"></div>
}

运行应用程序时,出现以下错误:

Warning: Unknown DOM property class. Did you mean className?

我可以通过更改class解决此问题className

问题是; React是否执行此约定?另外,为什么我需要使用它className而不是传统方法class如果这是一个限制,那是由于JSX语法还是其他原因?

Sam凯卡卡西2020/03/12 15:15:51

流星使用babel将ES5转换为ES6(ES2015),因此我们可以将其作为添加了babel transpiler的普通Node应用程序来处理。

您需要将.babelrc文件添加到项目的根文件夹中,并添加以下项目

{
  "plugins": [
    "react-html-attrs"
  ]
}

当然,您需要使用来安装此插件npm

npm install --save-dev babel-plugin-react-html-attrs

西门小宇宙2020/03/12 15:15:51

在HTML中,我们使用

class="navbar"

但是在React和ReactNative中没有HTML,我们在这里使用JSX(Javascript XML)

className="navbar"
达蒙西里村村2020/03/12 15:15:51

是的,它是一个React约定:

由于JSX是JavaScript,因此不建议使用诸如classfor标识符作为XML属性名称。相反,阵营DOM组件期望像DOM属性名称classNamehtmlFor分别。

深度JSX

EvaEva斯丁2020/03/12 15:15:51

您不能将class用于任何HTML标记属性,因为JS具有class的另一种含义。这就是为什么必须使用className而不是class的原因。

并且也使用htmlFor属性代替for。

米亚Stafan2020/03/12 15:15:51

在React.js中,没有for和class属性可用,因此我们需要使用

for   --> htmlFor
class --> className