Learning React from the docs and came across this example:
class Square extends React.Component {
constructor() {
super();
this.state = {
value: null,
};
}
...
}
According to Mozilla, super allows you to use this
in the constructor. Is there any other reason to use a stand alone super
(I know super
allows you to access parent class's methods as well) but with React is there any other use case of just calling super()
by itself?
super()
will calls the constructor
of its parent
class. This is required when you need to access some variables from the parent class.
In React, when you call super
with props. React will make props
available across the component through this.props
. See example 2 below
without super()
class A {
constructor() {
this.a = 'hello'
}
}
class B extends A {
constructor(){
console.log(this.a) //throws an error
}
}
console.log(new B())
with super()
class A {
constructor(props) {
this.props = props
}
}
class B extends A {
constructor(props) {
super(props)
console.log(this.props)
}
}
console.log(new B({title: 'hello world'}))
Hope this helps!