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

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

無法讀取函數(shù)中定義的狀態(tài)值

無法讀取函數(shù)中定義的狀態(tài)值

寶慕林4294392 2022-09-16 21:43:13
我正在嘗試從API中獲取一些數(shù)據(jù),并將其其中一個數(shù)組存儲在狀態(tài)內(nèi)并在其中訪問它!但是當(dāng)我嘗試使用上述狀態(tài)值時,我沒有得到定義。componentWillMount()這是我的代碼:componentWillMount() {        this._fetchData()************************************        alert(this.state.openSellOffers)************************************    }    _fetchData = async () => {        let openSellOffersRes = await fetchOpenSellOffers()        for (let sellOffer of openSellOffersRes.orders) {            let sellObj = {                _id: sellOffer._id,                currencyValue: sellOffer.currencyValue,                unitPrice: sellOffer.unitPrice,                totalPrice: sellOffer.totalPrice,                type: 'sell'            }            this.setState({                openSellOffers: [...this.state.openSellOffers, sellObj]            })        }    }    constructor(props) {        super(props)        this.state = {            IRRBalance: 0,            BTCBalance: 0,            openBuyOffers: [],            openSellOffers: [],            closedBuyOffers: [],            closedSellOffers: []        }    }如您所見,我用于顯示狀態(tài)值。這就是我得到的未定義點,而不是API響應(yīng)的確切值。alert()我該如何解決?
查看完整描述

1 回答

?
桃花長相依

TA貢獻1860條經(jīng)驗 獲得超8個贊

基本上,setState() 是異步工作的。因此,您需要等待幾納秒才能獲得該值。您可以通過2種方式做到這一點。


1. 使用等待


componentWillMount() {

  await this._fetchData()

  alert(this.state.openSellOffers)

}


_fetchData = async () => {

  let openSellOffersRes = await fetchOpenSellOffers()

  for (let sellOffer of openSellOffersRes.orders) {

    let sellObj = {

      _id: sellOffer._id,

      currencyValue: sellOffer.currencyValue,

      unitPrice: sellOffer.unitPrice,

      totalPrice: sellOffer.totalPrice,

      type: 'sell'

    }


    this.setState({

      openSellOffers: [...this.state.openSellOffers, sellObj]

    })

  }

  return true;

}


**2.使用設(shè)置超時 **


componentWillMount() {

  this._fetchData()

  setTimeout(() => {

    alert(this.state.openSellOffers)

  }, 100)

}


_fetchData = async () => {

  let openSellOffersRes = await fetchOpenSellOffers()

  for (let sellOffer of openSellOffersRes.orders) {

    let sellObj = {

      _id: sellOffer._id,

      currencyValue: sellOffer.currencyValue,

      unitPrice: sellOffer.unitPrice,

      totalPrice: sellOffer.totalPrice,

      type: 'sell'

    }


    this.setState({

      openSellOffers: [...this.state.openSellOffers, sellObj]

    })

  }

}


查看完整回答
反對 回復(fù) 2022-09-16
  • 1 回答
  • 0 關(guān)注
  • 131 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號

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