Проблема с React Router NavLink и activeClassName - PullRequest
0 голосов
/ 03 ноября 2019

Моя первая проблема в том, что у меня есть три ссылки в меню. Дом, о и добавить еду. NavLink activeClassName работает как положено, за исключением этого: Дом всегда остается активным, даже когда я перехожу на другие ссылки. На скриншоте я переместился на / о странице, но 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>

1 Ответ

1 голос
/ 03 ноября 2019

1. Добавьте точную к Навлинку '/':

  <NavLink to="/" activeClassName="active-navlink" exact={true}  >
        <li>Home</li>
  </NavLink>
Образец укладки:

https://codepen.io/k3no/pen/OXgXOb

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...