React setState 将新对象推送到数组
React setState push new object to array
我有一个包含对象数组的状态。我想使用 setState 将新对象推送到该数组。我真的不知道该怎么做。非常感谢任何帮助。
代码:
interface permissions {
guild_id: number,
role_id:number,
command_id: number
}
export default function Permissions(){
const [permissions, setPermissions] = useState<permissions[]>([]);
const handleSwitchChange = (event: React.ChangeEvent<HTMLInputElement>) => {
if(event.target.checked){
// add to permissions
const addedPermission = {
guild_id: 907366719130054800,
role_id: role,
command_id: parseInt(event.target.id)
}
//This should also keep the current array of objects
setPermissions([addedPermission])
}else{
}
};
//api calls to get the data
}
一位朋友建议在 setPermissions 中使用“三点 (...)”符号。然而,这给出了一个错误,即传播参数必须具有元组类型。有谁也知道他在说什么吗?
提前感谢您的帮助
正如两位好心人在评论中指出的那样,传播运算符应该像这样使用:
setPermissions(permissions => [...permissions, addedPermissions])
可在 here
中找到传播运算符文档的 link
我有一个包含对象数组的状态。我想使用 setState 将新对象推送到该数组。我真的不知道该怎么做。非常感谢任何帮助。
代码:
interface permissions {
guild_id: number,
role_id:number,
command_id: number
}
export default function Permissions(){
const [permissions, setPermissions] = useState<permissions[]>([]);
const handleSwitchChange = (event: React.ChangeEvent<HTMLInputElement>) => {
if(event.target.checked){
// add to permissions
const addedPermission = {
guild_id: 907366719130054800,
role_id: role,
command_id: parseInt(event.target.id)
}
//This should also keep the current array of objects
setPermissions([addedPermission])
}else{
}
};
//api calls to get the data
}
一位朋友建议在 setPermissions 中使用“三点 (...)”符号。然而,这给出了一个错误,即传播参数必须具有元组类型。有谁也知道他在说什么吗?
提前感谢您的帮助
正如两位好心人在评论中指出的那样,传播运算符应该像这样使用:
setPermissions(permissions => [...permissions, addedPermissions])
可在 here
中找到传播运算符文档的 link