Ответ 1
Я получил эту ошибку, потому что у меня была циклическая структура импорта. Один модуль импортирует другой и наоборот.
Изучите 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;
Я получил эту ошибку, потому что у меня была циклическая структура импорта. Один модуль импортирует другой и наоборот.
Backbone.View
может быть undefined в вашем случае. Этот фрагмент, который производит эту ошибку, это
if (typeof parent !== "function" && parent !== null) {
throw new TypeError("Super expression must either be null or a function, not " + typeof parent);
}
Проблема для меня была в том, что я использовал
import { EditForm } from '../EditForm'
вместо
import EditForm from '../EditForm'
Хуже того, сообщение об ошибке жаловалось на совершенно несвязанный компонент, который не был изменен за несколько недель. Безопасно сказать, что это вызвало у меня головные боли. Просто подумайте о том, что вы недавно изменили, и вероятно, что там будет ошибка.