Answers:
您不能将class用于任何HTML标记属性,因为JS具有class的另一种含义。这就是为什么必须使用className而不是class的原因。
并且也使用htmlFor属性代替for。
在HTML中,我们使用
class="navbar"
但是在React和ReactNative中没有HTML,我们在这里使用JSX(Javascript XML)
className="navbar"
使用babel编译时的JSX语法,将用于创建HTML元素的基础语法是
React.createElement('div', {attributes}, "Hello");
如果我们使用类而不是className,则react会将其推断为javascript类而不是html class属性。[原因是文件中已经使用了变量名'class'来创建javascript类,并且出于相同目的保留了该名称]。这是错误的,并且编译器的确会引发错误,因为javascript类不是html DOM元素的有效属性。
React.createElement("p", {"class": "header"}, "Hello");
因此,有必要使用className代替class。
React.createElement("p", {"className": "header"}, "Hello")