我收到一个错误,在mocha中测试我的组件时无法解释。相关代码是:
console.error('Index', Index, typeof Index);
let ind = TestUtils.renderIntoDocument(<Index />);
正在制作:
错误:&#39;索引&#39;,功能索引(){...},&#39;功能&#39;
错误:&#39;警告:React.createElement:type无效 - 期望一个字符串(对于内置组件)或类/函数(对于复合组件)但得到:object。您可能忘记从其定义的文件中导出组件。请检查
Index
的渲染方法。&#39;
所以似乎第一行Index
是一个函数,在下一行,它现在是一个对象。
我以前从未见过这种错误,也不能为我的生活开始猜测是什么导致了它。我使用的是webpack和react-router,但我不确定这些错误是如何与此错误相关的(相同的设置之前从未引起过这种错误)。
什么可能导致我的组件类型从一行更改为下一行?或者至少,什么可能导致React.createElement认为它已经改变了?
编辑:
发现错误。错误不是Index.jsx
错误似乎意味着的方式。错误发生在Index
在其render方法中导入和呈现的组件中。
答案 0 :(得分:1)
大多数时候这种情况发生(对我而言)是因为你没有正确导出/导入。
常见错误(对我来说):
// File: LeComponent.js
export class LeComponent extends React.Component { ... }
// File: App.js
import LeComponent from './LeComponent';
// no "default" export, should be export default class LeComponent
有几种方法可能是错误的,但这种错误是因为每次都有60%的时间导入/导出错误。