Closed johnnylc closed 4 years ago
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正确更新。
🐛 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正确更新。
© 版本信息
🚑 其他信息 [如截图等其他信息可以贴在这里]