1 回答
TA贡献1860条经验 获得超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.使用设置超时 **
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]
})
}
}
添加回答
举报
