5***@qq.com
5***@qq.com
  • 发布:2019-12-13 14:24
  • 更新:2020-12-04 17:01
  • 阅读:1510

【报Bug】uniapp 使用原生子窗体,原生子窗体nvue不会被释放

分类:uni-app

详细问题描述

(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)

[内容]
在tabbar 页面使用 原生子窗体 在使用 reLaunch 重启app 之后,使用原生子窗体的页面,原生子窗体nvue 不会被释放,也就是不会走beforeDestroy 方法

重现步骤

[步骤]

  1. 创建一个vue 页面,设置为tabbar 页面
  2. 在这个tabbar 页面上使用原生子窗子nvue文件
  3. 在使用 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

2019-12-13 14:24 负责人:无 分享
已邀请:
5***@qq.com

5***@qq.com (作者) - 90后IT

来人呢

  • 飞翔的腿毛

    想问一下怎么解决的呢,好像只有ios有这个问题

    2020-09-10 16:55

遗落之章

遗落之章

Android也有问题,显示和隐藏是正常的,但是我去打印生命周期发现显示和隐藏的时候并没有走 onShow 和 onHide 方法

该问题目前已经被锁定, 无法添加新回复