2017-03-04 55 views
1

我收到一個錯誤,我無法在摩卡測試我的組件時解釋錯誤。相關的代碼是:Bizarre React.createElement錯誤(不變違例)

console.error('Index', Index, typeof Index); 
    let ind = TestUtils.renderIntoDocument(<Index />); 

這是生產:

ERROR: 'Index', function Index() { ... }, 'function'

ERROR: 'Warning: React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: object. You likely forgot to export your component from the file it's defined in. Check the render method of Index .'

如此看來,在第一行Index是一個函數,並在第二天線,它現在是一個對象。

我從來沒有見過這種錯誤之前,不能爲我的生活開始猜測是什麼導致它。我正在使用webpack和react-router,但我不確定這些錯誤是如何與此錯誤相關的(相同的安裝程序從未導致此類錯誤)。

什麼可能導致我的組件的類型從一行更改爲下一行?或者至少,有什麼可能導致React.createElement認爲它已經改變了?

編輯:

發現錯誤。這個錯誤並不是Index.jsx錯誤似乎暗示的方式。該錯誤位於Index導入並呈現在其渲染方法中的組件中。

+1

它是索引渲染方法內的東西,如錯誤所述,而不是索引本身 – Quassnoi

+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%,每次的。

+0

原來這是問題,除非它不是'索引'導入不正確。它是'Index'依賴的組件之一,錯誤消息沒有說明。 –

相關問題