React中使用withRouter使侧边栏高亮与页面展示一致

 在使用antdUI的侧边栏在刷新页面后路由和侧边栏高亮不一致,那边就需要以下设置

// 在侧边栏页面引入withRouter
import { Link, withRouter } from "react-router-dom"
class Sider extends Component {
    render() {
        const path = this.props.location.pathname
        return (
            <>
                <Menu
                  theme={this.state.theme}
                  onClick={this.handleClick}
                  style={{ width: 200 }}
                  defaultOpenKeys={['sub1']}
                  selectedKeys={[path]} // 设置高亮的key
                  mode="inline"
                >
                  {
                    // react里没有指令,只能用map方法遍历数组
                    this.state.menuList.map((item,i)=>{
                      // return 一个标签  标签里要加上key,通常key用数组的下标
                      return <Menu.Item key={item.path}><Link to={item.path}>{item.title}</Link></Menu.Item>
                    })
                  }

                </Menu>
            </>
        )
	 }
}
export default withRouter(Sider)//使用withRouter导出组件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值