![](/img/trans.png)
[英]after installing react showing Error: Target container is not a DOM element
[英]Meteor-React Error: Target Container is not a DOM element, after fix
我从以下位置复制+粘贴代码: https : //stackoverflow.com/questions/41514549/
然后,我修复错误并通过“id”更改“class”,因此:
主文件
<head>
<title>React Meteor Voting</title>
</head>
<body>
<div id="render-target"></div>
</body>
主文件
import React, { Component } from 'react';
import {Meteor} from 'meteor/meteor';
import { render } from 'react-dom';
Meteor.startup(() => {
render(<App />, document.getElementById('render-target'));
});
class App extends Component {
render(){
return (
<h1>Hello!</h1>
);
}
}
包.json
{
"name": "test-react",
"private": true,
"scripts": {
"start": "meteor run"
},
"dependencies": {
"babel-runtime": "^6.20.0",
"meteor-node-stubs": "~0.2.4",
"react": "^15.5.4",
"react-dom": "^15.5.4"
}
}
但我得到了同样的错误:
未捕获的错误:_registerComponent(...):目标容器不是 DOM 元素。 在不变 (modules.js?hash=de726ed…:12672) 在 Object._renderNewRootComponent (modules.js?hash=de726ed…:30752) 在 Object._renderSubtreeIntoContainer (modules.js?hash=de726ed…:30842) 在渲染 (modules) .js?hash=de726ed...:30863) at app.js?hash=71ef103...:46 at mayReady (meteor.js?hash=27829e9...:809) at HTMLDocument.loadingCompleted (meteor.js?hash=27829e9...:821) )
快把我逼疯了....¡¡¡¡
基本上,问题是由于 HTML 渲染而发生的。 当您创建流星应用程序时,默认情况下会出现火焰,并且您正在使用 react 处理流星或使用 angular 处理流星。 您可以通过两种方法解决此错误。
方法一在main.js中添加import语句
import './main.html'
;
方法 2首选,因为它是我的选择
meteor remove blaze-html-templates
meteor add static-html
如果您删除了blaze-html-templates
,则需要添加static-html
包来编译index.html
并避免此错误(请参阅Meteor 指南,段落末尾):
meteor add static-html
我有同样的问题。 我就是这样解决的。
在您的终端中,在项目目录中键入以下几行。
meteor remove blaze-html-templates
meteor add static-html
对我来说,我只需要在尝试渲染到 DOM 之前导入 .html 文件。
import './main.html';
meteor remove blaze-html-templates
meteor add static-html
将您的脚本标签添加到结束</body>
标签之前,很可能是在您的 DOM ID 之前加载的脚本。
也换个方式...
import React, { Component } from 'react';
import {Meteor} from 'meteor/meteor';
import { render } from 'react-dom';
class App extends Component {
render(){
return (
<h1>Hello!</h1>
);
}
}
Meteor.startup(() => {
render(<App />, document.getElementById('render-target'));
});
首先移除 blaze 模板依赖
meteor remove blaze-html-templates
然后添加静态html
meteor add static-html
我已经删除了包 (blaze-html-templates) 。
我认为 Meteor+React 不是必需的,但它用于编译 main.html。
添加包 blaze-html-templates
流星添加 blaze-html-templates
解决这个问题。
在我的情况下,修复很简单。 在 HTML 中将类更改为 id。
render( <h1>Hello</h1>, document.getElementById("app"))
<body>
<div class="app"><`enter code here`/div>
</body>
<body>
<div id="app"><`enter code here`/div>
</body>
这是一篇旧帖子,但它在谷歌结果中排名第一,所以......
我在我的 android build 但不是 web 上收到这个错误,已经删除了 blaze 并添加了 statichtml ..
我的问题最终是我的 html 中导入了一个 favicon 和 manifest.json,但我还没有开始创建它们。
我删除了链接,它就像一个魅力。
希望这可以为某人节省几个小时的挖掘时间。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.