Menu组件是放在layout页面中,
然后通过umi的配置式路由包含其他pages组件,
现在直接在页面上点击Menu的任一Item可以跳转并背景高亮,
但是其他的组件页面中有Link链接的话,我想点击后也能使对应的Menu.Item背景高亮,
antd中有提供selectedKeys这个API可以修改,我尝试着在layout中判定window.location.pathname并与routes数组中url做比对,然后找出index去更新selectedKeys,写在componentDidMount里有点问题,layout页面组件只会加载一次,
现在有两个解决方向,一个是找出页面跳转时layout能够每次触发的生命周期,一个是想办法把layout的props传给{this.props.children}组件,然后通过状态提升修改selectedKeys,
不知道是否可以这样还是有更好的方式?
所以子组件跳转时应该如何修改layout页面的Menu的selectedKeys呢?
暂时已实现,解决思路是在layout页render的时候去获取key键绑定到selectedKeys,
这样每次跳转页面时都可以更新selectedKeys的值了,但是需要维护一个routes数组,映射出url和key的关系。