亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在使用ES6類時,“超級()”和“超級(道具)”有什么區別?

在使用ES6類時,“超級()”和“超級(道具)”有什么區別?

慕田峪4524236 2019-07-05 18:37:07
在使用ES6類時,“超級()”和“超級(道具)”有什么區別?什么時候通過?props到super()為什么?class MyComponent extends React.Component {   constructor(props) {     super(); // or super(props) ?   }}
查看完整描述

3 回答

?
慕碼人8056858

TA貢獻1803條經驗 獲得超6個贊

當一個人需要通過時,只有一個原因。propssuper():

當你想要訪問this.props在構造函數中。

經過:

class MyComponent extends React.Component {    
    constructor(props) {
        super(props)

        console.log(this.props)
        // -> { icon: 'home', … }
    }}

未通過:

class MyComponent extends React.Component {    
    constructor(props) {
        super()

        console.log(this.props)
        // -> undefined

        // Props parameter is still available
        console.log(props)
        // -> { icon: 'home', … }
    }

    render() {
        // No difference outside constructor
        console.log(this.props)
        // -> { icon: 'home', … }
    }}

請注意,經過或不通過propssuper無效關于以后使用this.propsconstructor..那是rendershouldComponentUpdate,或事件處理程序能接觸到它。

這在索菲·阿爾伯特的書中有明確的說法回答一個類似的問題。


文件-狀態和生命周期,將本地狀態添加到類中,點2-建議:

類組件應該始終使用props.

但是,沒有提供任何理由。我們可以推測,這要么是子類的原因,要么是為了將來的兼容性。


查看完整回答
反對 回復 2019-07-05
  • 3 回答
  • 0 關注
  • 577 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號