Skip to content

fix(back-top): 使用catch:tap阻止tap事件冒泡,增加回归测试 - #4623

Open
collensong wants to merge 1 commit into
Tencent:developfrom
collensong:fix/backtop-catch-tap
Open

collensong wants to merge 1 commit into
Tencent:developfrom
collensong:fix/backtop-catch-tap

Conversation

@collensong

Copy link
Copy Markdown
Contributor

🤔 这个 PR 的性质是?

  • 日常 bug 修复
  • 新特性提交
  • 文档改进
  • 演示代码改进
  • 组件样式 / 交互改进
  • CI/CD 改进
  • 重构
  • 代码风格优化
  • 测试用例
  • 分支合并
  • 其他

🔗 相关 Issue

💡 需求背景和解决方案

问题背景

目前 BackTop 组件根节点点击事件使用 bindtap 绑定,tap 事件会向外冒泡,当组件嵌套在可点击父容器中时,会触发父级点击逻辑,与 TDesign 其他基础组件(如 Button)的事件阻断行为不一致,存在交互体验 bug。

解决方案

  1. 将组件根节点 bindtap 改为 catch:tap阻断 tap 事件冒泡,统一组件交互规范;
  2. 新增单元回归测试用例,覆盖「组件点击不触发父级 tap 冒泡」场景,保证后续迭代不退化。

无 UI、无 API、无样式、无兼容性变更

📝 更新日志

  • 本条 PR 不需要纳入 Changelog

tdesign-miniprogram

  • fix (back-top): 修复点击事件冒泡问题,统一组件交互规范,补充冒泡阻断回归单测

@tdesign/uniapp

@tdesign/uniapp-chat

☑️ 请求合并前的自查清单

⚠️ 请自检并全部勾选全部选项⚠️

  • 文档已补充或无须补充
  • 代码演示已提供或无须提供
  • TypeScript 定义已补充或无须补充
  • Changelog 已提供或无须补充

补充本地环境说明(粘贴在末尾,适配你之前的 PR 风格)

本机高版本 Node 执行完整构建 / 覆盖率收集会触发 source-map@0.7.3 mappings.wasm 报错,属于项目老旧构建链(gulp-typescript + jest26)与新版 Node 的兼容问题,非本次代码改动引入,所有 BackTop 单元测试已本地全量通过,请以 CI 结果为准。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@pkg-pr-new

pkg-pr-new Bot commented Sep 4, 2026

Copy link
Copy Markdown

Open in StackBlitz

npm i https://pkg.pr.new/tdesign-miniprogram@4623
npm i https://pkg.pr.new/@tdesign/uniapp@4623
npm i https://pkg.pr.new/@tdesign/uniapp-chat@4623

commit: f53c674

@tdesign-bot

Copy link
Copy Markdown
Collaborator

TDesign Component Site Preview Open

Component Preview
tdesign-miniprogram 完成
@tdesign-miniprogram/chat 完成
tdesign-uniapp 完成
tdesign-uniapp-chat 完成

@anlyyao anlyyao added the 2.x label Sep 8, 2026
@anlyyao

anlyyao commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator

当前 pr 存在不兼容变更风险,不建议在现阶段调整:

  • 页面侧 bind:tap 静默失效: 依赖的是从组件根冒出的 tap,改 catch 后收不到。埋点类用法会失效
  • 默认插槽被波及:back-top.wxml 尾部有 ,slot 内可点元素的 tap 也会一起被阻断。
  • 组件常规用法其实是根节点 bind、子节点 catch(防止子节点点击冒泡到自己的根节点)。Button 是孤例

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants