我的第一个问题是,菜单中有三个链接。主页,关于和添加食物。 NavLink activeClassName可以按预期工作,但除此之外:即使我移至其他链接,主页也始终保持活动状态。 在屏幕截图中,我已移至/ about页面,但Home * li保持活动状态。
其次,由于某些原因,边界半径不适用于这些项目。是因为它们有大量填充物吗?
我的代码:
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>
答案 0 :(得分:2)
1。 将精确值添加到“ /”的Navlink中:
<NavLink to="/" activeClassName="active-navlink" exact={true} >
<li>Home</li>
</NavLink>