前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >React报错之The tag is unrecognized in this browser

React报错之The tag is unrecognized in this browser

作者头像
chuckQu
发布2022-08-19 16:41:45
1.2K0
发布2022-08-19 16:41:45
举报
文章被收录于专栏:前端F2E

原文链接:https://bobbyhadz.com/blog/react-the-tag-is-unrecognized-in-this-browser[1]

作者:Borislav Hadzhiev[2]

正文从这开始~

总览

当我们使用一个在浏览器中不存在的标签或以小写字母开头的组件名称时,会产生"The tag is unrecognized in this browser"React警告。为了解决该问题,只使用有效的标签名称,并将你的组件的第一个字母大写。

the-tag-is-unrecognized-in-this-browser.png

这里有个例子来展示错误是如何发生的。

代码语言:javascript
复制
// App.js
const App = () => {
  // ⛔️ Warning: The tag <p1> is unrecognized in this browser.
  // If you meant to render a React component, start its name with an uppercase letter.
  return (
    <div>
      <div>
        <p1>Hello world</p1>
      </div>
    </div>
  );
};

export default App;

上述代码的问题在于,我们使用了p1标签,但该标签并不存在于浏览器中。

确保标签存在

我们必须确保只使用受支持的标签。你可以在这里[3]查看所有Web支持的标签。你可以通过使用CTRL + F来检查一个特定的标签是否存在,并查找该标签,例如<li>

为了解决上述示例的错误,我们必须使用一个存在的标签名称。比如说,h1标签或者p标签。

代码语言:javascript
复制
const App = () => {
  return (
    <div>
      <div>
        <h1>Hello world</h1>
      </div>
    </div>
  );
};

export default App;

小写字母开头

导致"The tag is unrecognized in this browser"警告的另一个原因是,当我们以小写字母开头一个组件名称时。

代码语言:javascript
复制
const greet = () => {
  return <h2>Hello world</h2>;
};

const App = () => {
  // ⛔️ Warning: The tag <greet> is unrecognized in this browser.
  // If you meant to render a React component, start its name with an uppercase letter.

  return (
    <div>
      <div>
        <greet />
      </div>
    </div>
  );
};

export default App;

上述代码的问题在于,greet组件的名称以小写字母开头。

所有的组件名称必须以大写字母开头,因为这是React用来区分我们编写的组件和存在于浏览器中的内置标签的惯例。

代码语言:javascript
复制
// 👇️ capitalize first letter
const Greet = () => {
  return <h2>Hello world</h2>;
};

const App = () => {
  return (
    <div>
      <div>
        <Greet />
      </div>
    </div>
  );
};

export default App;

一旦我们将组件名称的第一个字母大写,React就不会认为我们试图使用一个在浏览器中不存在的标签,而是知道我们在使用一个自定义组件。

参考资料

[1]

https://bobbyhadz.com/blog/react-the-tag-is-unrecognized-in-this-browser: https://bobbyhadz.com/blog/react-the-tag-is-unrecognized-in-this-browser

[2]

Borislav Hadzhiev: https://bobbyhadz.com/about

[3]

这里: https://developer.mozilla.org/en-US/docs/Web/HTML/Element

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-08-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端F2E 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 总览
  • 确保标签存在
  • 小写字母开头
    • 参考资料
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档