React Router NavLink和activeClassName的问题

问题描述 投票:0回答:1

我的第一个问题是,我在菜单中有三个链接。主页,关于和添加食物。 NavLink activeClassName可以按预期工作,但除此之外:即使我移至其他链接,主页也始终保持活动状态。在屏幕截图中,我已移至/ about页面,但Home * li保持活动状态。enter image description here

其次,由于某些原因,边界半径不适用于这些项目。是因为它们有大量填充?

我的代码:

   import React from "react";
import { NavLink } from "react-router-dom";
const Navbar = (props) => {
  return (
    <nav>
      <ul>
        <NavLink to="/" activeClassName="active-navlink">
          <li>Home</li>
        </NavLink>
        <NavLink to="/about" activeClassName="active-navlink">
          <li>About</li>
        </NavLink>
        <NavLink to="/add-food" activeClassName="active-navlink">
          <li>Add Food</li>
        </NavLink>{" "}
      </ul>
    </nav>
  );
};

export default Navbar;

和我的路由器,所有链接都在这里处理:

<Router>
      {" "}
      <div className="App">
        <Navbar></Navbar>
        <Switch>
          <Route path="/about" component={About}></Route>
          <Route
            path="/products/:food"
            render={(props) => (
              <IndividualProduct {...props}></IndividualProduct>
            )}
          ></Route>
          <Route
            path="/"
            exact
            render={(props) => (
              <Home
                {...props}
                groceryList={groceryList}
                orderTotal={orderTotal}
                setOrderTotal={setOrderTotal}
                productsInCart={productsInCart}
                updateProductsInCart={updateProductsInCart}
              ></Home>
            )}
          ></Route>
          <Route component={NotFound}></Route>
        </Switch>
      </div>
    </Router>
css reactjs react-router
1个回答
0
投票

精确添加到'/'的Navlink:

  <NavLink to="/" activeClassName="active-navlink" exact={true}  >
        <li>Home</li>
  </NavLink>
© www.soinside.com 2019 - 2024. All rights reserved.