详细问题描述
(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)
[内容]
在tabbar 页面使用 原生子窗体 在使用 reLaunch 重启app 之后,使用原生子窗体的页面,原生子窗体nvue 不会被释放,也就是不会走beforeDestroy 方法
重现步骤
[步骤]
- 创建一个vue 页面,设置为tabbar 页面
- 在这个tabbar 页面上使用原生子窗子nvue文件
- 在使用 relaunch 方法重启应用,原生子窗体nvue中 beforeDestroy 不会被执行,也就是没有被释放
[结果]
原生子窗体没有被释放导致在次进入tabbar 页面 ,布局错乱、不能控制(hide、show方法没有作用)
[期望]
原生子窗体被释放走beforeDestroy方法 在此进入的时候还能正常显示,控制hide 或者show
[如果语言难以表述清晰,拍一个视频或截图,有图有真相]
IDE运行环境说明
[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明]
HBuilderX Uni-app
[IDE版本号]
2.4.6.20191210
[windows版本号]
[mac版本号]
10.14.6
uni-app运行环境说明
编译器版本:2.4.6
[运行端是h5或app或某个小程序?]
[运行端版本号]
[项目是cli创建的还是HBuilderX创建的?如果是cli创建的,请更新到最新版cli再试]
[编译模式是老模板模式还是新的自定义组件模式?]
App运行环境说明
[Android版本号]
[iOS版本号]
13.1
[手机型号]
[模拟器型号]
iPhone 11 pro max
附件
[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]
[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]
详细现象看附件
[App安装包或H5地址]
[可重现代码片段]
{
"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "使用原生子窗体页面",
"app-plus": {
"subNVues": [{
"id": "AdTabControl",
"path": "pages/index/subNVue/ad-tab-control",
"style": {
"position": "absolute",
"top": "0",
"left": "0",
"width": "375",
"height": "48px",
"background": "transparent"
}
},
{
"id": "AdTopView",
"path": "pages/index/subNVue/ad-top-view",
"style": {
"position": "absolute",
"top": "0",
"left": "0",
"height": "48px",
"background": "transparent"
}
}
]
}
}
}
],
"tabBar": {
"color": "#999999",
"selectedColor": "#4786CE",
"borderStyle": "white",
"backgroundColor": "#ffffff",
"list": [{
"pagePath": "pages/index/index",
"iconPath": "static/App_slices/device_unselect@3x.png",
"selectedIconPath": "static/App_slices/device_select@3x.png",
"text": "设备"
},
{
"pagePath": "pages/index/secondpage",
"iconPath": "static/App_slices/mine_unselect@3x.png",
"selectedIconPath": "static/App_slices/mine_select@3x.png",
"text": "我的"
}
]
},
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "uni-app",
"navigationBarBackgroundColor": "#F8F8F8",
"backgroundColor": "#F8F8F8"
}
}
// 原生子窗子中的释放方法不执行
created() {
console.log("ad-tab-control created");
},
beforeDestroy() {
console.log("ad-tab-control beforeDestroy");
},
联系方式
[QQ] 506907778
飞翔的腿毛
想问一下怎么解决的呢,好像只有ios有这个问题
2020-09-10 16:55