'"ReferenceError: Must call super..." when passing raw JSX arg to super in derived class
Trying to run the following in a React app gives the ReferenceError (below). Why? I'm calling super()
. Is the JSX somehow "accessing 'this'"?
class Base {
constructor(foo) {
this.foo = foo
}
}
class Extender extends Base {
constructor() {
super(<p>foo</p>)
}
}
ReferenceError: Must call super constructor in derived class before accessing 'this' or returning from derived constructor
new Extender
src/Component01.js:29
26 |
27 | class Extender extends Base {
28 | constructor() {
> 29 | super(<p>foo</p>)
30 | }
31 | }
32 |
Whereas the following (which breaks the encapsulation of the first example, so I don't want to do it) runs fine:
class Base {
constructor(foo) {
this.foo = foo
}
}
const someJsx = <p>foo</p>
class Extender extends Base {
constructor() {
super(someJsx)
}
}
?
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|