Cats萌萌
2023-07-20 14:43:20
我有一個(gè)數(shù)組,數(shù)組中的每個(gè)元素都可以是汽車 ICar[] 數(shù)組,我在向列表添加項(xiàng)目時(shí)遇到問(wèn)題const [carList, setCarList] = React.useState<[ICar[]]>([[]]);當(dāng)涉及到正常設(shè)置狀態(tài)時(shí),如果它是對(duì)象數(shù)組,我會(huì)執(zhí)行以下操作setCarList(initialList => [...initialList, JSON.parse(JSON.stringify(car))]); // this works when its just an array of ICar但當(dāng)我成功時(shí)[ICar[]]我遇到了問(wèn)題const cars = [JSON.parse(JSON.stringify(car))] as ICar[];
setCarList(initialList => [[...initialList],cars]);
1 回答

牛魔王的故事
TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超3個(gè)贊
不知道為什么使用 JSON.stringify。在你的例子中
setCarList(initialList?=>?[[...initialList],cars]);
實(shí)際上應(yīng)該是
setCarList(initialList?=>?[...initialList,cars]);
在我看來(lái),你嵌套的次數(shù)超過(guò)了必要的次數(shù)。我不知道你對(duì)該狀態(tài)的要求是什么,但如果你需要更多類似引用的狀態(tài)管理(例如,將汽車添加到最低級(jí)別的數(shù)組中)。
我還認(rèn)為您輸入錯(cuò)誤,因?yàn)?code>[ICar[]]實(shí)際上是一個(gè)只有一個(gè)元素的數(shù)組 - 這會(huì)在向其中添加更多元素時(shí)導(dǎo)致 TS 錯(cuò)誤。我的猜測(cè)是你想要ICar[][]
更重要的是,您可能不希望在“內(nèi)部”使用空數(shù)組來(lái)初始化狀態(tài),通常初始狀態(tài)是一個(gè)空數(shù)組:
const?[carList,?setCarList]?=?React.useState<ICar[][]>([]);
添加回答
舉報(bào)
0/150
提交
取消