不太熟悉react路由器,但我需要NavLink的功能来设置父li
元素的活动类,而不是a
元素.
为了实现这一点,我只看了它的源代码NavLink
并将其复制到一个新元素.(使用打字稿的示例,但与js大致相同)
import * as React from 'react';
import { Link, withRouter, Route } from 'react-router-dom';
class LiNavLink extends React.Component<any, {}> {
render() {
const {to,exact, strict, activeClassName, className, activeStyle, style, isActive: getIsActive, ...rest } = this.props;
return (
<Route
path={typeof to === 'object' ? to.pathname : to}
exact={exact}
strict={strict}
children={({ location, match }) => {
const isActive = !!(getIsActive ? getIsActive(match, location) : match)
return (
<li
className={isActive ? [activeClassName, className].join(' ') : …
Run Code Online (Sandbox Code Playgroud)