我在项目中使用循环设置数组中对象的状态时遇到了一个问题。当我循环数据时,只有一组对象。
这是我密码
const {role} = usePage().props
const { data, setData, put, processing, errors, reset } = useForm({
name: role.name || '',
permissions: []
})
const setUncheckPermissions = () => {
const temp = props.permissions.map((permission) => {
return permission['name']
})
if(props.permissions.length > role.permissions.length){
for(let i=0; i < temp.length; i++){
setData("permissions", [{name:temp[i],isChecked:false}]); // only set one of them
}
return console.log('all good')
}
return console.log('Maybe problems happen')
}
请给予我一些线索或提示或更好术语来解决这个问题。2提前感谢
2条答案
按热度按时间piah890a1#
dsekswqp2#
您似乎将属性
isChecked: false
Map到每个权限对象为此,您只需使用map函数一次,然后设置整个权限的状态。
不需要Map一次来取出name属性并循环通过它来设置isChecked属性。所有这些都可以一次完成。此外,在循环中调用setData将使组件在每次迭代时重新呈现,这是不希望的。
只需执行以下操作: