4 回答

TA貢獻(xiàn)1779條經(jīng)驗(yàn) 獲得超6個(gè)贊
為了訪問accounts從 App 組件傳遞到 DisplayAcc 組件的狀態(tài):
render() {return (
<div className="container">
<h1 className="title">Retail API</h1>
<DisplayAcc accounts = {this.state.accounts} />
</div>
)}

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超6個(gè)贊
我沒有看到在哪里
loadData
被調(diào)用,這讓我對 的價(jià)值產(chǎn)生懷疑accounts
。一致性是關(guān)鍵:如果
accounts
是組件狀態(tài)的一部分,那么您應(yīng)該通過 訪問它this.state.accounts
,而不是this.accounts
。請注意,你是
console.log
有意義的。因此,如果您想檢查this.account
,就沒有點(diǎn)打印res
,正如您在評論中提到的那樣。

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超9個(gè)贊
您應(yīng)該能夠通過嘗試通過this.accounts
更改來訪問該狀態(tài):
this.state.accounts
現(xiàn)在社區(qū)更流行使用所謂的函數(shù)式組件。通過這種方法,您不需要構(gòu)造函數(shù),真的建議您閱讀此內(nèi)容,因?yàn)樗鼘⒋蟠蠛喕拇a!

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超8個(gè)贊
首先,this.loadData = this.loadData.bind(this)
是不必要的,因?yàn)?code>loadData是一個(gè)箭頭函數(shù)。
其次,setState
它是一個(gè)異步函數(shù),因此您無法在調(diào)用它后立即讀取新狀態(tài)。因此,以下控制臺日志將是undefined
this.setState({accounts: res}) console.log(this.accounts) // also this must be this.state.accounts!
此外,您試圖以錯(cuò)誤的方式獲取狀態(tài)值,它必須是:
<DisplayAcc accounts={this.state.accounts} />
如果您想在DisplayAcc
組件中讀取帳戶 prop,您應(yīng)該將控制臺日志添加到 或render
方法componentDidUpate
中,因?yàn)?code>constructor僅在第一次渲染時(shí)調(diào)用,并且accounts
當(dāng)時(shí)您的 props 為空。但是我提到的那些每次道具改變時(shí)都會被調(diào)用。
添加回答
舉報(bào)