学习ES6并直接遇到以下错误Super expression must either be null or a function, not undefined.
真的不确定我的问题在哪里,如果有人能提供帮助那就太棒了。
main.js
'use strict'
import Backbone from 'exoskeleton';
import App from './views/App';
var onDOMReady = () => {
console.log('inside dom ready');
window.app = new App();
}
if(document.readyState === 'complete' || document.readyState === 'interactive' || document.readyState === 'loaded' ) {
onDOMReady();
} else {
document.addEventListener('DOMContentLoaded', onDOMReady);
}
App.js
'use strict'
import Backbone from 'exoskeleton';
class App extends Backbone.View {
initialize () {
console.log('App: Init');
}
render () {
console.log('App: Render');
}
}
export default App;
答案 0 :(得分:8)
我收到此错误,因为我有一个循环导入结构。一个模块导入另一个模块,反之亦然。
答案 1 :(得分:6)
Backbone.View
可能未定义。产生此错误的代码段为
if (typeof parent !== "function" && parent !== null) {
throw new TypeError("Super expression must either be null or a function, not " + typeof parent);
}
答案 2 :(得分:4)
对我来说问题是因为我使用了
import { EditForm } from '../EditForm'
而不是
import EditForm from '../EditForm'
更糟糕的是,错误消息抱怨一个完全不相关的组件,这个组件在几周内没有被修改过。可以说这个让我有些头疼。回想一下你最近修改的内容,可能会出现错误。