【发布时间】:2014-12-12 20:12:03
【问题描述】:
我很困惑为什么会在控制台中收到此错误。我已经阅读了所有的说明,据我所知,我这样做是对的。
在我的页面上我有一个
<div id="aisis-writer"></div>
我希望我的 react 元素绑定到哪里。然后我创建了一个不渲染的简单 React 组件:
var AisisWriter = React.createClass({
getInitialState: function(){},
componentDidMount: function(){},
render: function(){
return null;
}
});
React.render(
<AisisWriter />,
document.getElementById('aisis-writer')
);
非常基础。当我加载页面时,我看到:Uncaught Error: Invariant Violation: _registerComponent(...): Target container is not a DOM element. 所以我想,好吧,也许我在这里拼错了一些东西,所以在控制台中我这样做了:
document.getElementById('aisis-writer');
我回来了:
<div id="aisis-writer"></div>
所以我完全错过了什么吗?为什么会出现此错误?
【问题讨论】:
-
代码在您的文档中的什么位置?可能与stackoverflow.com/q/14028959/218196 重复。
-
React.render 应该在 window.onload 上调用或者将脚本标签和你的反应代码放在 asis-writer dom 元素之后
-
这是在 Rails 项目中,所以我假设执行此操作的代码的所有 Javascript 代码都加载在标题中。我应该在我的元素之后使用一种方法来加载这个特定的文件吗?
-
是的,您只能获取对存在元素的引用。
标签: javascript reactjs