【Ant Design Pro】使用ant design pro做为你的开发模板如何动态加载菜单列表
在Ant Design Pro中,动态加载菜单列表通常是通过配置路由和权限来实现的。以下是一个简化的例子,展示了如何根据用户角色动态生成菜单:
import React from 'react';
import { Menu } from 'antd';
import { Link } from 'dva/router';
import { getMenuData } from './menu';
// 获取菜单数据
const menuData = getMenuData();
function getSubMenuOrItem(item) {
if (item.children && item.children.length > 0) {
const childrenItems = item.children.map(child => getSubMenuOrItem(child));
return (
<Menu.SubMenu key={item.key} title={item.name}>
{childrenItems}
</Menu.SubMenu>
);
} else {
return (
<Menu.Item key={item.key}>
<Link to={item.path}>{item.name}</Link>
</Menu.Item>
);
}
}
function getMenuItems(menuData) {
return menuData.map(item => getSubMenuOrItem(item));
}
function NavMenu() {
return (
<Menu theme="dark" mode="inline" defaultSelectedKeys={['1']}>
{getMenuItems(menuData)}
</Menu>
);
}
export default NavMenu;
在这个例子中,getMenuData
函数用于从服务器或本地状态获取动态菜单数据。getSubMenuOrItem
函数递归地构造了菜单项,如果项目有子项,它将创建一个Menu.SubMenu
,否则创建一个Menu.Item
。getMenuItems
函数处理顶级菜单项的构建。
请注意,这只是一个简化的示例,实际应用中你需要根据自己的权限管理逻辑来调整getMenuData
函数和构造菜单的逻辑。
评论已关闭