最近在项目中遇到了一个莫名其妙的问题,在UNI-APP首页利用SubNvue原生子窗体实现了一个drawer抽屉菜单,当切换账户并uni.reLaunch之后,重新进入首页,多次打开、关闭drawer抽屉菜单,会出现数据错乱的bug。当退出App(杀死进程),重新进入App后,打开drawer抽屉菜单,数据又正常。后经打印排查,发现是存在缓存问题。

通过打印分析得知:

pages.json

"path": "pages/device/index/index","style": {"navigationBarTitleText": "","enablePullDownRefresh": false,"app-plus": {"subNVues": [{"id": "drawer","path": "pages/device/index/drawer/drawer","type": "popup","style": {"position": "absolute","width": "80%","height": "100%"}    }]}}

drawer.nvue

created() {//获取系统信息uni.getSystemInfo({success: (res) => {this.statusBar = res.statusBarHeight;this.scrollHeight = res.windowHeight - res.statusBarHeight;}})//参数传递,监听uni.$on('DRAWER_FOR_DEVICE_TAB', (data) => {if(data){//处理传递的参数this.handleParamDatas(data);}})},beforeDestroy() {console.log("drawer destroy...")uni.$off('DRAWER_FOR_DEVICE_TAB');},

1、当退出App(杀死进程)时,subnvue生命周期函数beforeDestroy()会执行,进行销毁操作。

2、当uni.reLaunch,重启App时,subnvue生命周期函数beforeDestroy()不会执行,没有进行销毁操作。

解决:

方法一、使用subnvue隐藏方法close(),入参与hide方法一致,在relaunch之前调用。(验证过,有效)

uni.getSubNVueById('drawer').close('fade-out', 50);uni.reLaunch({url: "/pages/login/login"})

方法二:

直接调用plus.runtime.restart()方法重启应用,在Android不会进启动页,但在IOS中会重进原生启动页,这个方法交互上有点不好。(未验证)

UNI-APP在使用SubNvue原生子窗体时,清理缓存的问题相关推荐

  1. uni-app中覆盖视频(原生子窗体)、视频下载

    在uni-app中,使用video时,要在视频上覆盖内容,并且要兼容app端,安卓端的适配还好做点,但是ios的话,就弄了我好久,搞了大半天才搞定,这里记录下 1.微信小程序端 视频做的是全屏显示的视 ...

  2. uniapp 使用原生子窗体进行视频聊天

    uniapp 使用原生子窗体进行视频聊天 现在 uniapp 开发的实时音视频聊天类的 APP 大部分都要在 nvue 页面上进行开发.虽然 nvue 与 vue 的区别不是很大,但还是有所差异的. ...

  3. uniapp原生子窗体(弹出层为例子)

    在当前目录下新建一个目录和一个nvue页面 pages.json文件 {"path": "msVideo/msVideo","style": ...

  4. uni app 自动化索引列表

    uni app 自动化索引列表,官方推荐的第三方插件 https://ext.dcloud.net.cn/plugin?id=375 [{"letter": "A&quo ...

  5. 切换 uniapp_万能前端框架uni app初探03:底部导航开发

    前言 本节我们使用uni app的底部导航功能,点击不同tab会显示不同页面,这个功能在实际项目开发中几乎是必备的. 一.基础知识 1.tabBar 如果应用是一个多 tab 应用,可以通过 tabB ...

  6. uni app map 地图 漂浮问题及方案

    uni app map 地图 漂浮问题及方案 文章页有图片导致的问题,图片没加载出来,导致文章内容高度不固定,如果图片没加载出来,高度就是0,如果此时开始加载map,那么map就在那里加载,map原生 ...

  7. uni.app H5(微信公众号定位) uni.getLocation

    最近在开发公众号,由于之前经常使用uni,app写APP,索性就用uni.app来开发公众号了, 不过也遇到了一个问题,就是在公众号的首页要获取用户的定位.我看了看官网的API 有个uni.getLo ...

  8. HBuilder X ——Uni app 学习笔记(一)

    HBuilder X --Uni app 学习笔记(一) 1.pages.json配置 *pages数组中第一项表示应用启动页,数组中其他项为项目中所有页面路径. enablePullDownRefr ...

  9. uni app中使用图表

    关于在uni app中运用图表 今天写项目,需要在uni app中使用图表,我使用的是ucharts. 具体操作如下 1.下载 ucharts可以直接在uni app的插件市场下载安装. 先在插件市场 ...

最新文章

  1. 【cordova打包】环境配置
  2. Java中的享元设计模式,涨姿势了!
  3. 4.PromQL快速入门
  4. C4C Adapt menu debugging
  5. 有趣的灵魂,从高质量的阅读开始
  6. HDU4612 Warm up
  7. dynamodb java_使用Java查询DynamoDB项
  8. 第13章 集成学习和随机森林 学习笔记中 oob
  9. Android 开发调用百度地图客户端
  10. Java部分集合以及部分常用类
  11. 拓嘉辰丰电商:拼多多长期活动有哪些?有什么特点
  12. LBP(局部二进制模式)
  13. python 试题:写一段程序逐行读入一个文本文件,并在屏幕上打印出来。
  14. 计算机软件如何控制硬件工作,介绍软件是怎样控制硬件的
  15. 一文讲懂页面置换算法,带例题详解
  16. Android VideoView 无法播放https网络视频问题
  17. 初玩OpenWRT之编译TP-Link WR841N V8固件
  18. IMS 网络架构(三)
  19. EmguCV基本操作(一)
  20. 计算机页面优盘页面分开,u盘被分成2个盘怎么合并

热门文章

  1. 又一个程序猿的奋斗史——第一章 初入职场
  2. vue项目配置 webpack-obfuscator 进行代码加密混淆
  3. 图形学基础 | 计算机图形学MOOC学习笔记
  4. 【Linux词典】之磁盘命令(fdisk、gdisk、mkswap、mount、umount、df、lsblk)
  5. 首席新媒体运营黎想教程:活动运营推广入门全攻略及进阶
  6. iTOP-4418开发板兼容八核6818开发板介绍
  7. c语言读取文件字节数,怎么在C语言中利用fstat函数获取文件的大小
  8. 6. Jetpack---Paging你知道怎样上拉加载吗?
  9. 九年级计算机课教学计划,九年级下学期计算机学科教学计划.doc
  10. Wiring in Spring: @Autowired, @Resource and @Inject