ant-design / ant-design-pro-layout

🌃 Powerful and easy to use beautiful layout
https://prolayout.ant.design/
MIT License
1k stars 239 forks source link

🐛[BUG]6.2.2版本动态改变menuData时,菜单openKeys selectedKeys无法正确更新 #547

Closed johnnylc closed 4 years ago

johnnylc commented 4 years ago

🐛 bug 描述 [详细地描述 bug,让大家都能理解]

6.2.2版本修复了之前menuData动态更新bug,但是当menuData动态获取更新时,openKeys无法动态更新,菜单无法正常展开。

应用场景: 1,通过路由进入layout页面,默认menuData定义为空 2,请求服务器获取菜单配置,并设置menuData 3,此时路由与菜单项相匹配,但是菜单没有正确展开、选中

调试源代码: https://github.com/ant-design/ant-design-pro-layout/blob/33f2a2508868edd1a5a879b1a796ac30ce7ebd5a/src/SiderMenu/BaseMenu.tsx#L315 运行时,menuData一直为[](没有随menuData更新),keys计算结果为[], openKeys和selectedKeys更新错误。

解决方法: https://github.com/ant-design/ant-design-pro-layout/blob/33f2a2508868edd1a5a879b1a796ac30ce7ebd5a/src/SiderMenu/BaseMenu.tsx#L321 修改此行,[flatMenuKeys.join('-')] 为 [flatMenuKeys.join('-'), menuData] ,则以上问题中menuData能够正常更新,keys结果计算正确,所以openKeys selectedKeys正确更新。

© 版本信息

🚑 其他信息 [如截图等其他信息可以贴在这里]