4 回答

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

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

TA貢獻1784條經驗 獲得超9個贊
您應該能夠通過嘗試通過this.accounts
更改來訪問該狀態:
this.state.accounts
現在社區更流行使用所謂的函數式組件。通過這種方法,您不需要構造函數,真的建議您閱讀此內容,因為它將大大簡化您的代碼!

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