javascript - onClick 事件使用 react-bootstrap nav 下拉菜单和 react-router-dom 不起作用
问题描述
我使用 react-bootstrap 有以下导航栏。第二个品牌始终是处于活动状态的品牌,就好像下拉菜单始终单击链中的最后一项(在本例中为 Tommy Hilfiger)。我需要根据单击下拉列表中的哪个项目来设置品牌。
const [brand, setBrand] = useState("");
const brandSet = (value) => {
setBrand(value);
};
<Navbar bg="light" expand="lg">
<NavDropdown title="Brands" id="basic-nav-dropdown">
<NavDropdown.Item href="/#/products">
All Products
</NavDropdown.Item>
<NavDropdown.Item
href="/#/products:PoloRalphLauren"
onClick={brandSet("Polo Ralph Lauren")}
>
Polo Ralph Lauren
</NavDropdown.Item>
<NavDropdown.Item
href="/#/products:TommyHilfiger"
onClick={brandSet("Tommy Hilfiger")}
>
Tommy Hilfiger
</NavDropdown.Item>
解决方案
因为您正在调用该函数而不是将函数传递给 onClick,所以将该行更改为:
<NavDropdown.Item
href="/#/products:PoloRalphLauren"
onClick={() => brandSet("Polo Ralph Lauren")}
>
Polo Ralph Lauren
</NavDropdown.Item>
=> 称为箭头函数,在 ES6 中引入,将在 React 0.13.3 或更高版本上得到支持。
推荐阅读
- google-analytics - 使用 GTM 在 Google Analytics 中显示传递到 dataLayer 的数据
- julia - 为什么这两段 Julia 代码的表现如此不同?
- python - Python X 轴中的烛台图显得拥挤
- firebase - spring-boot 安全性通过令牌识别
- javascript - 总增量在javascript中不起作用
- rest - 用于处理混合/批处理请求的正确(RESTful)HTTP 方法
- c++ - 使用优先队列插入/显示功能时出现分段错误
- gradle - 我可以制作 Gradle 依赖项的依赖项来强制一个版本吗?
- python - 在 Windows 中获取桌面上的选定文件 (7)
- python - 使用 readline 的 python 采样会产生内存错误