在反应路由器教程的活动链接部分,他们建议以下使用活动链接。
您网站中的大多数链接不需要知道它们是活动的,通常只需要知道主要导航链接。包装它们很有用,这样您就不必记住您的 activeClassName 或 activeStyle 无处不在。
我们将在这里使用扩展运算符,即三个点。它克隆了我们的 props,在这个用例中,它将 activeClassName 克隆到我们想要的组件中,以便我们从中受益。
在 modules/NavLink.js 创建一个新文件,如下所示:
// modules/NavLink.js
import React from 'react'
import { Link } from 'react-router'
export default React.createClass({
render() {
return <Link {...this.props} activeClassName="active"/>
}
})
我很想知道是否有一种方法可以使以下模式起作用:
// modules/Navlink.js
import React from 'react'
import { Link } from 'react-router'
export default class extends Link {
constructor(props) {
super(props);
props.activeClassName = 'active'
}
}