关于react-router 的activeClassName的问题

clipboard.png
如果是这样写死,是正常的,点击当前哪个当前哪个就会增加一个active

clipboard.png
但如果我的菜单是{data}输出的,我给他一个navTmp的变量遍历出来,这个时候activeClassName就有问题了,就是点击菜单的时候不会再当前元素上添加active,一定要刷新页面才会正确的显示当前状态,

我估计是不是我后面一种写法react吧activeClassName这个属性当做一个普通的属性去了?点击的时候没反应,必须刷新浏览器才有反应

阅读 8.8k
2 个回答
新手上路,请多包涵

activeClassName 无效是因为导航组件未被激活,也就是该组件的路由并未被刷新,很有可能题者公用导航,导航组件并未路由,写死固定在哪里。点击导航时,只是在切换body中的路由,导航组件未被更新,activeClassName是根据导航组件所在的路由去改变的。建议用bod内容import导航组件,即可解决。

新手上路,请多包涵

withRouter了解一下