【Ant Design Pro】使用ant design pro做为你的开发模板如何动态加载菜单列表
    		       		warning:
    		            这篇文章距离上次修改已过443天,其中的内容可能已经有所变动。
    		        
        		                
                在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函数和构造菜单的逻辑。
评论已关闭