我有一个用第二个文件写的组件,它有两个导出,一个是“images”导出和一个“模态”导出。在我的主机文件中,我包含两者并在回调ajax / jquery load
请求期间安装它们。我的网站结构是这样的,每个负载都由一个实际的静态url端点表示(例如,url.com/sub/item是完全可导航的,但在我的用例中我将它们加载到url.com提供的包装器中。 ajax的作品 - 它更像是“我能做到”的测试 - 更少“我需要吗。”
组件在静态页面上自行运行。在加载的页面上 - 图像有效,但另一个(模态)使整个聚会崩溃。
这是我得到的控制台错误“
警告:React.createElement:type不应为null或未定义。它应该是一个字符串(对于DOM元素)或一个ReactClass(对于复合组件) 警告:只能将函数或字符串作为React组件安装。
以下是我如何解决这个麻烦的孩子:
if ($('.modal-images').length){
$('body').append('<section id="modal-loader"></section>');
// This breaks stuff like a drunk bull in the chicken coup.
React.render(<Modal />, document.getElementById('modal-loader'));
}
这是整个政党的背景:
https://gist.github.com/motleydev/d763ebf6a9116ed05ea6
答案 0 :(得分:0)
发生的事情是,在某个时刻,您的<Component/>
之一被用于组件为undefined
的地方。我会确保Modal
实际上存在于文件中作为您期望的值。
答案 1 :(得分:0)
想出来 - 由于我在我的包含文件中做了条件呈现逻辑,因此Modal被封装在if检查中。基本上 - 我需要一段不存在的代码,因为在查看动态页面时if检查是错误的。条件中没有包装类定义。