uni-app IOS真机上字节小程序this.$parent无法获取到父级组件实例,只能获取到页面实例,provide/inject报错
uni-app IOS真机上字节小程序this.$parent无法获取到父级组件实例,只能获取到页面实例,provide/inject报错
示例代码:
官方uni-collapse 折叠面板为例
操作步骤:
发布到字节跳动小程序,ios真机测试,官方uni-collapse 折叠面板为例
预期结果:
字节小程序上可正常展开
实际结果:
点击没反应
bug描述:
IOS真机上字节小程序`this.$parent`无法获取到父级组件实例,只能获取到页面实例,provide/inject报错,官方所有涉及嵌套组件都存在这个问题
| 项目 | 信息 |
|---|---|
| 产品分类 | uniapp/小程序/抖音 |
| PC开发环境操作系统 | Mac |
| PC开发环境操作系统版本号 | macOS Big Sur 11.4 |
| HBuilderX类型 | 正式 |
| HBuilderX版本号 | 3.1.22 |
| 第三方开发者工具版本号 | Version: 3.1.1 |
| 基础库版本号 | 2.14.0.1 |
| 项目创建方式 | HBuilderX |
更多关于uni-app IOS真机上字节小程序this.$parent无法获取到父级组件实例,只能获取到页面实例,provide/inject报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
字节的回复
更多关于uni-app IOS真机上字节小程序this.$parent无法获取到父级组件实例,只能获取到页面实例,provide/inject报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在字节跳动小程序iOS真机环境下,this.$parent 和 provide/inject 确实可能出现异常。这是由于字节小程序iOS端底层实现与uni-app预期行为存在差异。
问题分析:
this.$parent获取到页面实例:字节iOS端组件树渲染机制可能导致组件层级关系未按预期建立,$parent指向了页面而非直接父组件。provide/inject报错:依赖组件层级关系的特性在字节iOS端可能无法正常工作。
临时解决方案:
- 使用事件通信替代:对于父子组件通信,改用
$emit和$on的事件总线模式。// 子组件触发事件 this.$emit('custom-event', data); // 父组件监听 <child-component [@custom-event](/user/custom-event)="handleEvent" />

