我的狀態中有一個名為 purchaseItems 的數組,其值當前是硬編碼的。我有另一個名為 priceArray 的數組,我在狀態下初始化為空,我一直在嘗試在 componentDidMount() 中修改它,使其具有 purchaseItems 數組的長度并用零填充。我一直在嘗試做的方法是獲取 purchaseItems 的長度,創建名為 newArray 的 priceArray 的副本,使用 for 循環將零推入 newArray 直到它具有與 purchaseItems 相同的長度,然后通過 setState 將 newArray 附加到 priceArray。但是,當我通過 console.log 檢查 priceArray 時,它仍然為空。為什么會這樣?我將附上下面的代碼。注意:我計劃最終從數據庫中填充 purchaseItems,因此 purchaseItems 數組的長度并不總是相同,所以這就是我不硬編碼的原因,比如說,一個長度為 5 的充滿零的數組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:無法將狀態中數組的大小設置為狀態中另一個數組的大小
搖曳的薔薇
2022-07-21 10:13:07