我的狀態(tài)中有一個(gè)名為 purchaseItems 的數(shù)組,其值當(dāng)前是硬編碼的。我有另一個(gè)名為 priceArray 的數(shù)組,我在狀態(tài)下初始化為空,我一直在嘗試在 componentDidMount() 中修改它,使其具有 purchaseItems 數(shù)組的長度并用零填充。我一直在嘗試做的方法是獲取 purchaseItems 的長度,創(chuàng)建名為 newArray 的 priceArray 的副本,使用 for 循環(huán)將零推入 newArray 直到它具有與 purchaseItems 相同的長度,然后通過 setState 將 newArray 附加到 priceArray。但是,當(dāng)我通過 console.log 檢查 priceArray 時(shí),它仍然為空。為什么會這樣?我將附上下面的代碼。注意:我計(jì)劃最終從數(shù)據(jù)庫中填充 purchaseItems,因此 purchaseItems 數(shù)組的長度并不總是相同,所以這就是我不硬編碼的原因,比如說,一個(gè)長度為 5 的充滿零的數(shù)組priceArray 如果 purchaseItems 的長度為 5。我所在州的代碼: state = {}; constructor(props) { super(props); this.state = { purchaseItems: [redacted], priceArray: [], }; }我的 componentDidMount() 中的代碼: componentDidMount() { console.log("Purchase Items: " + JSON.stringify(this.state.purchaseItems)); const numItems = this.state.purchaseItems.length; console.log("numItems: " + numItems); var newArray = this.state.priceArray.slice(); console.log("initialized newArray: " + JSON.stringify(newArray)); var i; for (i = 0; i < numItems; i++) { newArray.push(0); } console.log("populated newArray: " + JSON.stringify(newArray)); this.setState({ priceArray: [...this.state.priceArray, newArray] }); console.log("priceArray: " + JSON.stringify(this.state.priceArray)); }終端:Purchase Items: [redacted]numItems: 6initialized newArray: []populated newArray: [0,0,0,0,0,0]priceArray: []
React-Native:無法將狀態(tài)中數(shù)組的大小設(shè)置為狀態(tài)中另一個(gè)數(shù)組的大小
搖曳的薔薇
2022-07-21 10:13:07