第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

為什么 this.setState() 在構(gòu)造函數(shù)中不起作用?

為什么 this.setState() 在構(gòu)造函數(shù)中不起作用?

富國(guó)滬深 2023-07-20 14:40:22
我正在使用react.js,并this.setState()在構(gòu)造函數(shù)中添加了它,但它不起作用。這是我的代碼 -class App extends React.Component {  constructor(props) {    super(props);    this.state = {      age: '18'    }    this.setState({id: 'name'});   }  render(){    return (      <div>        <p>{this.state.id}</p>        <p>{this.state.value}</p>      </div>    )  }}這會(huì)渲染第二個(gè)p標(biāo)簽,但不會(huì)渲染第一個(gè)標(biāo)簽,為什么會(huì)這樣?
查看完整描述

3 回答

?
智慧大石

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超3個(gè)贊

setState 函數(shù)除了設(shè)置狀態(tài)外,還具有更改時(shí)重新渲染的機(jī)制。


構(gòu)造函數(shù)在組件實(shí)際安裝之前執(zhí)行,并且不會(huì)渲染任何內(nèi)容。這就是為什么在構(gòu)造函數(shù)中使用 setState 沒(méi)有意義。


所以你需要像這樣實(shí)現(xiàn)這一點(diǎn):


constructor(props) {

    super(props);


    this.state = {

      age: '18',

      id: 'name'

    }

  }


查看完整回答
反對(duì) 回復(fù) 2023-07-20
?
喵喵時(shí)光機(jī)

TA貢獻(xiàn)1846條經(jīng)驗(yàn) 獲得超7個(gè)贊

不要使用setState()內(nèi)部構(gòu)造函數(shù)或內(nèi)部渲染方法


構(gòu)造函數(shù)- 在創(chuàng)建實(shí)例時(shí)調(diào)用一次,如果您在構(gòu)造函數(shù)內(nèi)部創(chuàng)建,則不會(huì)發(fā)生重新渲染。


render - 如果您setState()在 render 方法內(nèi)部使用,它將變?yōu)闊o(wú)限,因?yàn)楫?dāng)您使用時(shí)會(huì)發(fā)生重新渲染setState()


如果你想保存這樣的屬性來(lái)聲明在生命周期方法中執(zhí)行它c(diǎn)omponentDidMount()


改進(jìn)


class App extends React.Component {

  constructor(props) {

    super(props);

    this.state = {

      age: '18'

    }

  }

  componentDidMount(){

    this.setState({id: 'name'}); 

  }

  render(){

    return (

      <div>

        <p>{this.state.id}</p>

        <p>{this.state.value}</p>

      </div>

    )

  }

}

或者像年齡一樣直接輸入


 this.state = {

      age: '18',

      id: 'name'

 }


查看完整回答
反對(duì) 回復(fù) 2023-07-20
?
梵蒂岡之花

TA貢獻(xiàn)1900條經(jīng)驗(yàn) 獲得超5個(gè)贊

class App extends React.Component {

  constructor(props) {

    super(props);

    this.state = {

      age: '18',

      id: '',

    }

  }


componentDidMount(){

 this.setState({id: 'name'}); 

}


  render(){

    return (

      <div>

        <p>{this.state.id}</p>

        <p>{this.state.age}</p>

      </div>

    )

  }

}


查看完整回答
反對(duì) 回復(fù) 2023-07-20
  • 3 回答
  • 0 關(guān)注
  • 214 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)