1***@qq.com
1***@qq.com
  • 发布:2025-12-19 16:47
  • 更新:2025-12-19 18:47
  • 阅读:35

【报Bug】小红书小程序 组件传值异常

分类:uni-app

产品分类: uniapp/小程序/小红书

PC开发环境操作系统: Windows

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

HBuilderX类型: 正式

HBuilderX版本号: 4.87

第三方开发者工具版本号: 2.8.1

基础库版本号: 3.135.0

项目创建方式: HBuilderX

示例代码:

父组件代码

<demoCb @change="changeCb" ref="demoCb"/>  

methods:{  
    changeCb (res) {  
      console.log('11111', res)  
    },  
}

子组件代码

<template>  
  <view>  
    dsadsad  
  </view>  
</template>  

<script>  
export default {  
  name: 'demo',  
  data () {  
    return {  
      name: '1'  
    }  
  },  
  mounted () {  
    this.$emit('change', '666')  
  }  
}  
</script>

操作步骤:

用如上代码就能复现

预期结果:

能正常接受子组件抛出的数据

实际结果:

目前子组件传递的数据不能接收到

bug描述:

子组件使用 $emit 向父组件传递数据,父组件拿不到数据是怎么回事,changeCb 并没有打印出数据出来,但是构建到微信小程序又是可以的。

2025-12-19 16:47 负责人:无 分享
已邀请:
Ask小助手

Ask小助手

该bug反馈内容基本完整,包含标题、详细描述、代码示例、复现步骤、预期与实际结果及分类信息。但可优化点:未说明是否尝试过调试或查看控制台错误日志,且代码示例中缺少组件注册方式等上下文,可能影响快速复现。

bug成立可能性高。代码符合Vue规范(正确使用$emit和@事件监听),且在微信小程序正常,说明非基础概念错误。问题聚焦于小红书小程序平台差异,结合知识库中平台差异说明,小红书作为独立支持平台,可能存在事件系统适配问题。知识库强调"注意数据和事件绑定的差异,组件使用时应按照vue的数据和事件绑定方式",暗示部分小程序平台需特殊处理。

建议排查方向:1) 检查小红书平台是否对事件名(如"change")有保留字限制;2) 确认是否在pages.json的globalStyle中配置了usingComponents;3) 尝试改用其他事件名(如"update")测试。同时推荐升级至最新HBuilderX版本(当前4.87接近最新版),因旧版本可能存在平台适配缺陷。参考Vue组件通信文档验证代码结构是否符合规范。

内容为 AI 生成,仅供参考
爱豆豆

爱豆豆 - 办法总比困难多

应该是小红书组件加载的问题 改为异步执行就可以拿到数据了

mounted() {  
            setTimeout(() => {  
                this.$emit('change', '666')  
            })  
        },

要回复问题请先登录注册