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

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

相當于多維 UseState 數組的 Array.Push

相當于多維 UseState 數組的 Array.Push

Cats萌萌 2023-07-20 14:43:20
我有一個數組,數組中的每個元素都可以是汽車 ICar[] 數組,我在向列表添加項目時遇到問題const [carList, setCarList] = React.useState<[ICar[]]>([[]]);當涉及到正常設置狀態時,如果它是對象數組,我會執行以下操作setCarList(initialList => [...initialList, JSON.parse(JSON.stringify(car))]); // this works when its just an array of ICar但當我成功時[ICar[]]我遇到了問題const cars =  [JSON.parse(JSON.stringify(car))] as ICar[]; setCarList(initialList => [[...initialList],cars]);
查看完整描述

1 回答

?
牛魔王的故事

TA貢獻1830條經驗 獲得超3個贊

不知道為什么使用 JSON.stringify。在你的例子中

setCarList(initialList?=>?[[...initialList],cars]);

實際上應該是

setCarList(initialList?=>?[...initialList,cars]);

在我看來,你嵌套的次數超過了必要的次數。我不知道你對該狀態的要求是什么,但如果你需要更多類似引用的狀態管理(例如,將汽車添加到最低級別的數組中)。

我還認為您輸入錯誤,因為[ICar[]]實際上是一個只有一個元素的數組 - 這會在向其中添加更多元素時導致 TS 錯誤。我的猜測是你想要ICar[][]

更重要的是,您可能不希望在“內部”使用空數組來初始化狀態,通常初始狀態是一個空數組:

const?[carList,?setCarList]?=?React.useState<ICar[][]>([]);


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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