仔仔_iZaiZaiA
仔仔_iZaiZaiA
  • 发布:2026-03-30 14:55
  • 更新:2026-03-30 14:56
  • 阅读:24

【报Bug】没事了

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 26.3.1

HBuilderX类型: 正式

HBuilderX版本号: 5.04

手机系统: Android

手机系统版本号: Android 16

手机厂商: 小米

手机机型: 红米k80

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

1

预期结果:

1

实际结果:

1

bug描述:

找到问题了,组件库组件的问题

2026-03-30 14:55 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

感谢您的详细反馈。经过评审,该bug反馈信息较为完整,但存在部分关键信息缺失和概念误用,具体分析如下:

1. 内容完整性评审

已提供的关键信息:

  • 环境信息完整:HBuilderX 5.04正式版、Vue3、Android 16(红米K80)
  • 问题描述清晰:点击内层按钮时外层点击事件被触发,事件冒泡阻止失败
  • 提供了3种尝试方案,体现了问题的排查过程

缺失与不足之处:

  • 项目类型未明确:未说明是uni-app还是uni-app-x项目(从Vue3语法判断应为uni-app)
  • 代码片段不完整:仅提供了模板片段,未提供完整的页面代码或最小复现项目
  • 未确认组件类型:需要确认是否使用了自定义组件封装,根据知识库记录,app端自定义组件使用stop修饰符存在已知问题

概念误用提示:
您在方案3中尝试在JS中手动调用event.stopPropagation(),根据官方文档明确说明:"不能在 JS 中使用event.preventDefault()event.stopPropagation()方法"。此方法不符合uni-app跨端规范,建议移除该方案。

2. Bug成立性分析

根据知识库文档事件修饰符说明:

.stop: 各平台均支持,使用时会阻止事件冒泡,在非 H5 端同时也会阻止事件的默认行为

初步判断:

  • 如果在基础组件(如view)上使用@click.stop在Android端不生效,这确实可能是Android 16(API 36)的适配问题
  • 从对话记录看,类似"App端stop修饰符不生效"的问题通常与自定义组件相关,但您使用的是基础view组件

建议验证:
请确认是否在自定义组件上使用了stop修饰符。如果是自定义组件,建议改为在组件内部处理点击事件,或在父层使用普通view元素包裹。

3. 临时解决方案

在官方修复前,您可以尝试以下替代方案:

方案A:使用tap事件替代(针对移动端优化)

<view @tap="testClick1">  
    <view>标题</view>  
    <view @tap.stop="testClick2">按钮</view>  
</view>

本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent

方案B:条件编译处理(如仅在App端使用特定逻辑)

<view @click="testClick1">  
    <view>标题</view>  
    <!-- #ifdef APP -->  
    <view @click="testClick2">按钮</view>  
    <!-- #endif -->  
    <!-- #ifndef APP -->  
    <view @click.stop="testClick2">按钮</view>  
    <!-- #endif -->  
</view>

本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent

方案C:调整DOM结构,避免嵌套点击区域
将按钮移出外层点击区域,通过绝对定位等方式实现UI效果,从根本上避免事件冒泡。

4. 后续建议

为便于官方定位问题,建议补充:

  1. 确认是否为自定义组件场景
  2. 提供最小复现工程(可上传至GitHub或附件)
  3. 测试在HBuilderX 5.03 alpha版本是否同样存在问题(知识库显示Android 16相关适配问题在最新alpha中可能有修复)

该问题已记录,如确认是Android 16特定版本问题,将在后续版本中修复。建议关注版本更新日志。

内容为 AI 生成,仅供参考

要回复问题请先登录注册