如何使用 React typescript 中的 useState Record 类型将元素添加到具有键值的列表中?
How can I add an element to a list with a key value using a useState Record type in React typescript?
我的 Record 类型的结构如下所示:
const PEOPLE_MAP_INIT: Record<string, Person[]> = {
"1": [],
"2": [],
"3": []
};
useState 是这样初始化的:
const [PEOPLE_MAP, SET_PEOPLE_MAP] = useState<Record<string, Person[]>>(PEOPLE_MAP_INIT);
基本上,我试图保存一个与字符串键值相对应的“人员对象”列表,每个对象都将保存自己唯一的列表。
我正在尝试从给定的 Person 对象主列表中将 Person 对象添加到 PEOPLE_MAP 中的第一个列表:
SET_PEOPLE_MAP({...PEOPLE_MAP, ["1"]: personList[i]});
但是,这只会给我打字错误。我知道我在某处误解了记录类型的使用,但我不确定如何解决这个问题。
我这样写了 AddPerson 函数,它工作正常,没有任何错误类型
const addPerson = () => {
const newPerson = new Person('Joe', 30);
const newPeopleMap = {...peopleMap};
newPeopleMap["1"].push(newPerson);
setPeopleMap(newPeopleMap);
};
我的 Record 类型的结构如下所示:
const PEOPLE_MAP_INIT: Record<string, Person[]> = {
"1": [],
"2": [],
"3": []
};
useState 是这样初始化的:
const [PEOPLE_MAP, SET_PEOPLE_MAP] = useState<Record<string, Person[]>>(PEOPLE_MAP_INIT);
基本上,我试图保存一个与字符串键值相对应的“人员对象”列表,每个对象都将保存自己唯一的列表。
我正在尝试从给定的 Person 对象主列表中将 Person 对象添加到 PEOPLE_MAP 中的第一个列表:
SET_PEOPLE_MAP({...PEOPLE_MAP, ["1"]: personList[i]});
但是,这只会给我打字错误。我知道我在某处误解了记录类型的使用,但我不确定如何解决这个问题。
我这样写了 AddPerson 函数,它工作正常,没有任何错误类型
const addPerson = () => {
const newPerson = new Person('Joe', 30);
const newPeopleMap = {...peopleMap};
newPeopleMap["1"].push(newPerson);
setPeopleMap(newPeopleMap);
};