javascript - 如何使用 react-router-dom 防止事件冒泡?
问题描述
好的。所以我有这样的东西。
我在整个帖子周围添加了链接,以为我可以停止单个按钮的冒泡,但是 stopPropagation() 没有按预期工作。
我已将按钮操作拆分为一个单独的组件,这是另一篇关于该主题的帖子所建议的,但这并没有起到作用。我假设这与它是一个 react-router-dom 链接这一事实有关,但它可能是别的东西。
有任何想法吗?
import React from 'react';
import { Link } from 'react-router-dom';
const MyComponent = ({
doSomething
})=>(
<Link to={`/some/url`}>
<div className="post">
<span className="button" onClick={e=>{
e.stopPropagation();
doSomething();
}}>My Button</span>
</div>
</Link>
)
解决方案
应该管用:
e.preventDefault()
更详细的解释:stopPropagation/preventDefault behavior on an element inside a link
另外,stopPropagation
是一个函数,它正在等待被调用。
推荐阅读
- python - 查看一列中的值是否在 pandas 数据框中包含 %
- c# - 在异步操作中获取 DbContext
- html - 如何自动流动:列但指定列
- node.js - 如何创建过期令牌firebase云功能?
- batch-file - 我可以在 WinSCP 批处理脚本中引用批处理文件目录吗?
- java - Repaint() 或 Revalidate() 在我的代码中不起作用
- c# - 在 for 循环期间创建的操作委托在用作委托方法中的参数时不尊重“for 变量”值
- javascript - 将 Figma CSS 转换为 Vue.js 组件 - 这里的最佳实践是什么?
- python - 使用 2 参数形式调用 super() 与直接引用方法并手动传入“self”有何不同?
- unity3d - Unity WebGL 移动浏览器解决方法和键盘输入修复?