暂时解决动态菜单问题

侧边栏菜单需要从服务端获取,思路是从登陆后获取菜单->存到localstorage->menu.js中从本地取出
但是antd-pro的menu.js在为未登录前就已经在router.js中加载了
附上页面加载过程图


暂时解决动态菜单问题_第1张图片
antd-pro加载过程图.png

更改加载流程好像没什么可能,只能github慢慢找办法
看到这个,好多人表示有用


暂时解决动态菜单问题_第2张图片
image.png

但是我没用,因为再用这个之前已经解决了。

暂时解决动态菜单问题_第3张图片
image.png

看到这个的时候,给我提供了一个思路:菜单从slideMenu渲染出来的,我可以去那里试试改一下:


暂时解决动态菜单问题_第4张图片
image.png

这里的menuData就是我从本地获取的,保持menuData经过formatter的格式,所以,我把本地取出的menuData传入common中getMenuData方法从getMenuData里return出来,然后到页面试了一下,就可以啦

只做上面几步,会出出现一个问题,菜单失去选中效果
把siderMenu.js内的props.menuData打印出来和getMenuData(menuData)的结果是一样的,此时考虑是否是因为在props里的区别,天真的想直接props.menuData= getMenuData(menuData),肯定是不行的

找到SiderMenu组件的引用地方,在BasicLayout.js里,把传入组件的menuData注释掉。
就可以了

你可能感兴趣的:(暂时解决动态菜单问题)