暂时解决动态菜单问题
2018-08-10 本文已影响0人
徐徐xue
侧边栏菜单需要从服务端获取,思路是从登陆后获取菜单->存到localstorage->menu.js中从本地取出
但是antd-pro的menu.js在为未登录前就已经在router.js中加载了
附上页面加载过程图
antd-pro加载过程图.png
更改加载流程好像没什么可能,只能github慢慢找办法
看到这个,好多人表示有用
image.png
但是我没用,因为再用这个之前已经解决了。
image.png看到这个的时候,给我提供了一个思路:菜单从slideMenu渲染出来的,我可以去那里试试改一下:
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注释掉。
就可以了