function getItem({label, key, icon, children, onClick, type}) { if(children) { return getItem(children); } console.log(label) return { key, icon, children, label, type, onClick }; } const {data: menuList, isFetching, isSuccess} = useGetMenuListQuery(); let items = []; if(isSuccess) { for (let item of menuList) { const menuItem = getItem({ label: item['title'], key: item['key'], icon: <UploadOutlined />, children: item['children'], onClick: changePath, }) items.push(menuItem); } } 为什么getItem函数返回的对象,里面属性全部都是undefine
时间: 2024-02-14 07:33:33 浏览: 52
getItem函数返回的对象属性全部为undefined的原因是因在函数内部,没有正确地给些属性赋值。特别是在递归调用getItem函数时,没有传递正确的参数。
可以通过修改getItem函数来解决这个问题。下面是修改后的代码:
```javascript
function getItem({label, key, icon, children, onClick, type}) {
if (children) {
// 递归调用getItem函数时,传递正确的参数
const childItem = getItem(children);
return {
key,
icon,
children: [childItem], // 将子菜单项放入数组中
label,
type,
onClick
};
}
console.log(label);
return {
key,
icon,
label,
type,
onClick
};
}
```
通过将子菜单项children放入数组中,保证了返回的对象中children属性总是一个数组,即使是单个子菜单项也放入数组中。这样可以保持返回对象的一致性。
阅读全文