Taro: e.stopPropagation()未能阻止冒泡

Created on 29 Jan 2021  ·  9Comments  ·  Source: NervJS/taro


相关平台

微信小程序

小程序基础库: 2.14.4
使用框架: React

复现步骤

e.stopPropagation()
...执行其他方法

期望结果

阻止冒泡,阻止跳转页面

实际结果

未能阻止冒泡,执行了跳转界面

暂时解决方法:
e.stopPropagation()
setTimeout(() => {
...执行其他方法
}, 100)

环境信息

Taro CLI 3.0.25 environment info:
    System:
      OS: Windows 10
    Binaries:
      Node: 10.15.3 - E:\软件安装\运行环境相关\1.Node\node.EXE
      Yarn: 1.22.4 - C:\Users\CTRL-WEB\AppData\Roaming\npm\yarn.CMD
      npm: 6.14.10 - E:\软件安装\运行环境相关\1.Node\npm.CMD

补充信息

FC页面、hooks、dva

F-react T-weapp V-3 question

Most helpful comment

临时解决办法就是在调用组件的外面再写一个然后阻止冒泡

All 9 comments

提供一下 demo

提供一下demo

我也遇到了。
例如像这样的两个组件,Button组件被点击的时候依旧会执行console.log(1)

const Button = () => <View onClick={e=>e.stopPropagation()}>按钮</View>
const Box = () => <View onClick={()=>console.log(1)} ><Button/></View>

临时解决办法就是在调用组件的外面再写一个然后阻止冒泡

taro版本3.0.22,e.stopPropagation()有效,试着升级到3.0.26,冒泡阻止不了了,就又回退了

临时解决办法就是在调用组件的外面再写一个然后阻止冒泡

再写一个是什么意思,麻烦大佬贴一下最简代码

taro版本3.0.22,e.stopPropagation()有效,试着升级到3.0.26,冒泡阻止不了了,就又回退了

3.1.2也不行

8757

@beysong 3.1.1 应该已经修复了,提供一下代码?

@beysong 3.1.1 应该已经修复了,提供一下代码?

https://github.com/beysong/taro-bug-demo

渲染属性的情况下可以复现
1,这里会出问题,不会组织冒泡
onClick={(e) => { e.stopPropagation(); console.log("inner"); this.setState({ isOpened: true, }); }}
2,这里正常,可以阻止冒泡
`onClick={(e) => {
e.stopPropagation();
console.log("inner");

              }}`
Was this page helpful?
0 / 5 - 0 ratings