InvalidCharacterError:无法在“文档”上执行“ createElement”:提供的标记名称(“ /static/media/index.c6592bb6.ts”)不是有效名称

时间:2019-01-02 09:09:24

标签: reactjs typescript

我有一个我要转换为使用打字稿的React应用

但是出现以下错误:InvalidCharacterError: Failed to execute 'createElement' on 'Document': The tag name provided ('/static/media/index.c6592bb6.ts') is not a valid name.

这个错误甚至意味着什么?看起来好像不喜欢打字稿扩展名

任何想法如何解决?

11 个答案:

答案 0 :(得分:3)

就我而言,我正在构建自己的Web应用程序,并且在IDE IntelliJ中创建了一个JavaScript文件,在那里一切都很好。但是在该文件夹中,后缀“ .js”丢失了,因此当我在该终端中使用“ npm run dev”命令时,它找不到我构建的文件。

如果对您来说一样,那么只需折叠并添加后缀即可。然后解决了

我认为这是IntelliJ中的错误,希望他们以后可以修复。

答案 1 :(得分:0)

这意味着您有尝试执行此操作的代码:

document.createElement("/static/media/index.c6592bb6.ts")

...直接或间接。由于/static/media/index.c6592bb6.ts不是有效的标签名称(例如divspan),因此失败。

答案 2 :(得分:0)

不确定这是否有帮助,但是我有相同的错误消息,并且标记了以下内容:

ReactDOM.render ( <App />, document.getElementById('root'));

对我来说,这是一个简单的错误(已经有人提到过),没有正确扩展名的文件。在我的情况下,是SearchBox子级保存为文本文件,而不是“ SearchBox.js”。在您的情况下,它将是“索引”文件。当然,我对此是完全陌生的,并且仍在学习中,只是以为我会分享,因为阅读以前对您问题的回答可以帮助我解决问题!

答案 3 :(得分:0)

对我来说,问题是我试图渲染ts文件。 React无法从ts文件“创建元素”。 TS文件需要转换为JS。我以为我的babel装载机配置正确,但事实并非如此。 babel加载程序未检查ts或tsx文件。

答案 4 :(得分:0)

首先,请检查您的源文件夹或公用文件夹中是否存在文件,并且没有正确的扩展名,例如“

  

索引

”为其添加适当的扩展名或将其删除。

答案 5 :(得分:0)

我收到此错误。碰巧js文件夹的名称末尾有空格。似乎React无法识别文件夹/文件名中的空格。

答案 6 :(得分:0)

我也遇到了这个错误,我看不到解决方案中描述的错误,这是我在Route组件分配中使用引号引起的。

async postUpdate(req, res, next){
        // find the post by id
        let post = await Post.findById(req.params.id);
        console.log(req.body);
        // check if there's any images for deletion
        //eval(require('locus'));
        if(req.body.deleteImages && req.body.deleteImages.length) {     

删除引号解决了这个问题。

<Route component="{ NotFound }" />

答案 7 :(得分:0)

以防万一以前没有指定它,我在Home文档中也遇到了同样的问题,这是因为我使用了它:

<Route path="/" component="{Home}" />

代替这个

<Route path="/" component={Home} />

请注意引号。希望这对某人有帮助。

答案 8 :(得分:0)

就我而言,我的App.js中出现错误。这样的App.js在路由路径上的名称错误,因此我必须更正路径名称并解决了我的错误。

答案 9 :(得分:0)

就我而言,它只是导入这样的资产

import { ReactComponent as PaintIcon } from "./assets/paint.svg";

代替

import PaintIcon from "./assets/paint.svg";

谢谢。

答案 10 :(得分:-1)

确保在文件名和导入时添加了 .js