一、super()
如果你用到了constructor就必須寫super()乐严,是用來初始化this的坛芽,可以綁定事件到this上。(如果用了constructor但不寫super()七嫌,你將會(huì)發(fā)現(xiàn)用到this的地方都會(huì)報(bào)錯(cuò))
如果沒用到constructor,是可以不寫的苞慢;React會(huì)默認(rèn)添加一個(gè)空的constructor诵原。(雖然是空的constructor,但是里面應(yīng)該有super())
二挽放、super(props)
如果像上圖一樣需要定義props的屬性 this.props.xixi="哈哈"绍赛,則需要用super(props)。
如果不定義props的屬性辑畦,只定義狀態(tài)this.state 吗蚌,就可以直接super();
這是為什么呢?
其實(shí)很簡單纯出,因?yàn)閠his.props必須要是一個(gè)對(duì)象蚯妇,才能在它下面定義屬性而constructor(props){} 傳入的參數(shù)props為對(duì)象所以super(props)的作用就是在父類的構(gòu)造函數(shù)中給props賦值一個(gè)對(duì)象this.props=props這樣就能在它的下面定義你要用到的屬性了,然而其他的由于沒有傳參就直接賦值為undefind暂筝。
由于state下面沒有屬性箩言,所以如果只是定義state就可以直接super()就行了。