uni-app UTS兼容性组件IOS端通过$emit像页面传递参数页面收不到参数

uni-app UTS兼容性组件IOS端通过$emit像页面传递参数页面收不到参数

信息类别 信息内容
产品分类 uniapp/App
PC开发环境 Mac
PC版本号 15.6.1
开发工具 HBuilderX
工具版本 4.82
手机系统 iOS
手机版本 iOS 16
手机厂商 苹果
手机机型 iPhoneX
页面类型 vue
vue版本 vue3
打包方式 云端
项目创建方式 HBuilderX

操作步骤:

  • 在开发工具4.76或4.82随便创建一个UTS兼容性组件都可以复现

预期结果:

  • 参数正常传递

实际结果:

  • 传递失败

bug描述:

```javascript
插件发送事件代码:  
let arg = new Map<string, any>()  
arg.set('pageCount', "12")  
arg.set('page', "1")  
this.$emit('change', arg)  

页面事件接收代码:  

const change=(arg:Map<string, any>)=>{  
        console.log('回传参数====',arg)  
    }

页面接收到的回传参数都是: 回传参数====, [object UniEvent]

这个问题在4.76和4.82版本开发工具都可复现


更多关于uni-app UTS兼容性组件IOS端通过$emit像页面传递参数页面收不到参数的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

hello , 是否能够提供一个完整的 demo 呢?

更多关于uni-app UTS兼容性组件IOS端通过$emit像页面传递参数页面收不到参数的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这是一个已知的UTS组件与iOS端的兼容性问题。在UTS组件中使用Map类型作为$emit参数传递到Vue页面时,iOS端无法正确解析参数类型,导致参数被转换为[object UniEvent]

建议改用JavaScript原生对象传递参数:

组件端修改:

this.$emit('change', {
  pageCount: "12",
  page: "1"
})

页面接收端修改:

const change = (arg: any) => {
  console.log('回传参数====', arg)
  console.log('pageCount:', arg.pageCount)
  console.log('page:', arg.page)
}
回到顶部