【问题标题】:React activeClassName property of NavLink not working反应 NavLink 的 activeClassName 属性不起作用
【发布时间】:2022-01-02 14:38:51
【问题描述】:

我一直在尝试使用 NavLinkactiveClassName 属性为链接/锚点应用某种颜色和背景。但是单击时未显示更改。我在下面附上js和CSS sn-ps

import React from 'react';
import { NavLink } from 'react-router-dom';
import './navbar.css';

const Navbar = () => {
  return (
    <div className='navbar'>
      <div className='navbar__left'>
        <NavLink to='/'>Clubhub</NavLink>
      </div>

      <div className='navbar__right'>
        <NavLink activeClassName='active_link' to='/'>
          Home
        </NavLink>
        <NavLink activeClassName='active_link' to='/membership'>
          Membership
        </NavLink>
        <NavLink activeClassName='active_link' to='/booking'>
          Booking
        </NavLink>
        <NavLink activeClassName='active_link' to='/profile'>
          Profile
        </NavLink>
      </div>
    </div>
  );
};

export default Navbar;

.active_link {
  background-color: #224461;
  color: white;
}
请帮我找出问题所在。 谢谢!

【问题讨论】:

    标签: javascript html css reactjs


    【解决方案1】:

    根据react-router docs

    在 React Router v6 中,activeClassName 将被删除,您应该使用 className 函数将类名应用于活动或 非活动的 NavLink 组件。

    这是一个更新版本:-

    import React from "react";
    import { NavLink, BrowserRouter as Router } from "react-router-dom";
    import "./navbar.css";
    
    const classNameFunc = ({ isActive }) => (isActive ? "active_link" : "");
    
    const App = () => {
      return (
        <Router>
          <div className="navbar">
            <div className="navbar__left">
              <NavLink to="/">Clubhub</NavLink>
            </div>
    
            <div className="navbar__right">
              <NavLink className={classNameFunc} to="/">
                Home
              </NavLink>
              <NavLink className={classNameFunc} to="/membership">
                Membership
              </NavLink>
              <NavLink className={classNameFunc} to="/booking">
                Booking
              </NavLink>
              <NavLink className={classNameFunc} to="/profile">
                Profile
              </NavLink>
            </div>
          </div>
        </Router>
      );
    };
    
    export default App;
    

    上面的代码在行动:-

    【讨论】:

    • 谢谢,伙计!它终于奏效了。我花了太多时间在这上面。
    猜你喜欢
    • 2021-01-25
    • 2021-12-27
    • 1970-01-01
    • 2020-12-05
    • 2017-03-06
    • 2021-10-20
    • 2020-02-29
    • 2019-03-31
    • 2019-04-10
    相关资源
    最近更新 更多