javascript - React/js onClick 父 div 和子 div。父母总是开火
问题描述
你好,我在我的父母和它的孩子上使用 onClick 时遇到了问题,它触发了哪个 menuSection 出现。即使我点击孩子,它的父母部分也会出现。如果单击该元素,如何仅触发子元素?
<div> onClick={() => props.onClick(MenuSection.Default)} >
<div <span><InfoIcon /></span> Some info</div>
<div>More Info</div>
<div>Even more Info</div>
<div onClick={() => props.onClick(MenuSection.NotDefault)}><InfoIcon /></div>
</div>
所以这就是它的外观,它总是 MenuSection.Default 永远不会显示 MenuSection.NotDefault。
解决方案
在函数中传入 e 并使用
e.stopPropagation();
<div onClick={() => props.onClick(MenuSection.Default)} >
<div <span><InfoIcon /></span> Some info</div>
<div>More Info</div>
<div>Even more Info</div>
<div onClick={(e) => e.stopPropagation();props.onClick(MenuSection.NotDefault)}><InfoIcon /></div>
</div>
但我也会将 onClick 内联函数从渲染方法中移出并用“this.nameOfClickMethod”引用它,nameOfClickMethod 当然由您选择命名。
推荐阅读
- desktop - 如何在 Google 远程桌面上重新登录我的 Ubuntu 远程桌面?
- javascript - 获取多个东西
- julia - Julia 中的直接求和、二元积(Kronecker 积)和 Hadamard 积
- html - 定位 Div 和 Video
- microsoft-graph-api - Microsoft Graph GET /subscribedSku 缺少 SKU
- javascript - 如何使用turfjs通过东北绘制弧线
- database-design - 如何在图形数据库(海王星)中为社交媒体应用相关用例进行数据建模?
- typeorm - 如何添加引用实体的字段?
- rust - Rust std::fmt 没有像预期的那样工作
- ios - iOS:重新安装后删除缓存中的所有数据