亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

React-Native:無法將狀態中數組的大小設置為狀態中另一個數組的大小

React-Native:無法將狀態中數組的大小設置為狀態中另一個數組的大小

搖曳的薔薇 2022-07-21 10:13:07
我的狀態中有一個名為 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: []
查看完整描述

1 回答

?
富國滬深

TA貢獻1790條經驗 獲得超9個贊

priceArray正確設置狀態

this.setState({ priceArray: [...this.state.priceArray, ...newArray] },()=>console.log(his.state.priceArray));

您也可以在一行中完成整個操作

this.setState({priceArray:(new Array(this.state.purchaseItems.length)).fill(0))},()=>console.log(his.state.priceArray))


查看完整回答
反對 回復 2022-07-21
  • 1 回答
  • 0 關注
  • 106 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號