我正在JSBin上玩ReactJS框架.

我注意到,如果我的组件名称以小写字母开头,它就不起作用.

例如,以下内容不会呈现:

var fml = React.createClass({
  render: function () {
    return <a href='google.com'>Go</a>
  }
});

React.render(<fml />, document.body);

但一旦我用Fml替换fml,它就会呈现.

有什么原因我不能用小写字母开头标签吗?

推荐答案

在JSX中,小写标记名被认为是HTML标记.但是,带有点(属性访问器)的小写标记名则不是.

HTML tags vs React Components.

  • <component />编译为React.createElement('component')(html标记)
  • <Component />编译成React.createElement(Component)
  • <obj.component />编译成React.createElement(obj.component)

Reactjs相关问答推荐

从另一个组件更改组件中const的状态

React onKeyUp不一致地使用快速Shift+键按压

可选链和useState挂钩

页面永远加载API/从数据库获取数据

有没有比;KeyableShell;组成部分

使用 React + Vite 范围化 CSS

验证 Yup 中的对象项

我发送的 prop 的值不会改变.如果成功登录,导航栏中的 prop 必须为 true.我从后端得到 200 ok

在 useSelector() 中使用 array.map() 如何导致组件在分派操作时重新渲染?

无法从子组件传递数据到父组件

部署到github pages时请求路径错误

条件渲染元素的测试不起作用

单元测试 useLoaderData() react-router v6 加载器函数

未捕获的类型错误:useSelector 不是函数

从其他组件切换 FieldSet

如何检索包含动态段的未解析路径?

当用户输入相同信息时如何禁用更新

为什么此代码中的 useState 不更新(文本更新但 id 不更新)?

设置 Material UI 表格默认排序

在 React 中访问作为 prop 传递的状态变量