Babel.js JSX元素'h1'没有对应的结束标记.ts(17008)

xkrw2x1b  于 5个月前  发布在  Babel
关注(0)|答案(8)|浏览(68)

每当我在vscode中保存email protected(https://stackoverflow.com/cdn-cgi/l/email-protection)版本文件中的index.js时,代码以丑陋的方式重新格式化,并显示如下图所示的错误:


的数据
我尝试了Google上所有可能的解决方案,但没有结果。
从卸载和重新安装vscode到更漂亮的卸载,重新启动vscode,再次安装并重新启动vscode,一次又一次地重新安装react app等等。我如何才能走上正轨?

aij0ehis

aij0ehis1#

  • 原因是使用了格式扩展。

解决问题的步骤
1.禁用格式扩展。
1.从代码中删除多余的空格。
1.保存它
这应该可以解决问题!

djp7away

djp7away2#

将文件扩展名从.js文件更改为.jsx
在屏幕底部,您将看到语言模式(当前设置为JavaScript)。
->点击“设置语言模式”
->然后将语言模式设置为“JavaScript React”

mwyxok5s

mwyxok5s3#

将文件从index.js更改为index.jsx并重写标记以及“hello world”对我来说很有效。
然后,我把index.jsx改回index.js,错误就没有再出现了。不知道为什么...

42fyovps

42fyovps4#

在Visual Studio Code中查找滚轮图标,在我的例子中,它位于帐户图标[像一个人形]下面的左下角。如果您将鼠标悬停在滚轮上,则会出现=> Manage 标签。单击滚轮,弹出一个菜单,您会看到 Extensions。单击Extensions。现在在扩展中查找JS-CSS-HTML-formatter。就在 JS-CSS-HTML-formatter 您将再次看到滚轮图标;单击它并从弹出菜单中选择禁用或禁用
有关更多文档,请咨询:https://marketplace.visualstudio.com/items?itemName=lonefy.vscode-JS-CSS-HTML-formatter

8xiog9wr

8xiog9wr5#

要使用HTML语法,您需要指定.jsx.tsx文件扩展名。
如果你想让React元素不使用JSX语法,请使用createElement(...)

创建React元素

我们建议使用JSX来描述你的UI应该是什么样子的。每个JSX元素只是调用React. RESTElement()的语法糖。如果你使用JSX,你通常不会直接调用以下方法。

  • createElement()
  • createFactory()

来源:https://reactjs.org/docs/react-api.html

niwlg2el

niwlg2el6#

首先,您必须将文件从“.js“重命名为“.jsx
你可以试试这个语法:

const element = <h1>this is something written in js</h1>;

ReactDOM.render(element, document.getElementById('root'));

字符串
=> JSX标记(<Component />)不是标准的JavaScript,如果将它们放在.js文件中,则没有特殊意义
=>如果要在.js文件中创建元素,请查看https://developer.mozilla.org/fr/docs/Web/API/Document/createElementhttps://reactjs.org/docs/react-api.html

laik7k3q

laik7k3q7#

也许是因为你的vscode的formatter扩展。请确保用js code formatter格式化你的代码。

pzfprimi

pzfprimi8#

它是如此简单,去这个网站:https://www.convertsimple.com/convert-html-to-jsx/和粘贴html代码,它将被转换为jsx
它对我起作用

相关问题