相当于多维 UseState 数组的 Array.Push

我有一个数组,数组中的每个元素都可以是汽车 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]);


Cats萌萌
浏览 118回答 1
1回答

牛魔王的故事

不知道为什么使用 JSON.stringify。在你的例子中setCarList(initialList => [[...initialList],cars]);实际上应该是setCarList(initialList => [...initialList,cars]);在我看来,你嵌套的次数超过了必要的次数。我不知道你对该状态的要求是什么,但如果你需要更多类似引用的状态管理(例如,将汽车添加到最低级别的数组中)。我还认为您输入错误,因为[ICar[]]实际上是一个只有一个元素的数组 - 这会在向其中添加更多元素时导致 TS 错误。我的猜测是你想要ICar[][]更重要的是,您可能不希望在“内部”使用空数组来初始化状态,通常初始状态是一个空数组:const [carList, setCarList] = React.useState<ICar[][]>([]);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript