我有一个数组,数组中的每个元素都可以是汽车 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[][]>([]);
添加回答
举报
0/150
提交
取消