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)
}

