After updating from 0.13.2 to 0.14.2 I’m getting this error:
Uncaught TypeError: Super expression must either be null or a function, not object
There are severalquestions about this already.
The most common error is misspelling React.component (without a capital C).
The other one is trying to use ES6 classes with versions < 0.13.
The most common error is misspelling React.component (without a capital C).
The other one is trying to use ES6 classes with versions < 0.13.
Aug 09, 2018 'TypeError: Super expression must either be null or a function' when importing Vue components on mocha tests #1748 This comment has been minimized. Sign in to view.
But I was already succesfully using ES6 classes with React 0.13.x, and I use capital C everywhere, and logging React.Component seems to give an appropriate result (function ReactComponent(…))
After some searching I made these 3 test cases of which 2 throw the excact same error (without me understanding why) and one does not. Seemingly suggesting the order in which classes occur is an issue?
TEST 1 (throws error)
TEST 2 (put BaseComponent under in Test.jsx, still error)
TEST 3 (put BaseComponent above Test class definition, no error!?)
I’m not even sure anymore this will solve my actual problem. But understanding what’s happening in these test cases may help me get to the solution.
I’m using webpack with babel to compile into a bundle.
update
Changing
Changing
To
also removed the error!
Which means I’m going to refactor that now, but it doesn’t solve the issue, because
Which means I’m going to refactor that now, but it doesn’t solve the issue, because
export default class
should just workAnswers:
I found the solution. It’s because of a change in babel, which I also updated.
If you use:
If you use:
You also need to use
import
instead of require
, so:instead of
Used this regex to replace that everywhere:
replace:
with:
replace:
var ([w-_]+?) = require('([w-_./]+?)');
with:
import $1 from '$2';
Answers:
I had a similar issue a while ago, deleting the node_modules folder and reinstalling everything worked for me, maybe you could try that?
Tags: express, function