uni-app实现从首页点击按钮进入子窗体执行倒计时,再清空本地缓存跳转到登陆页面登陆后,再次点击按钮进入子窗体倒计时不生效

uni-app实现从首页点击按钮进入子窗体执行倒计时,再清空本地缓存跳转到登陆页面登陆后,再次点击按钮进入子窗体倒计时不生效

操作步骤:

bug步骤说明:登录进入首页打开subNvue子窗体进入倒计时状态,再点击清空缓存按钮返回到登陆页面再次登陆进入首页点击子窗体出现[JS Framework] Failed to find taskCenter,只有从后台清空应用再次进入才能正常

预期结果:

清空缓存重新登陆进入首页点击子窗体倒计时正常执行

实际结果:

不正常

bug描述:

bug步骤说明:登录进入首页打开subNvue子窗体进入倒计时状态,再点击清空缓存按钮返回到登陆页面再次登陆进入首页点击子窗体出现[JS Framework] Failed to find taskCenter,只有从后台清空应用再次进入才能正常

开发环境 版本号 项目创建方式
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 Win10
HBuilderX类型 正式
HBuilderX版本号 2.9.3
手机系统 Android
手机系统版本号 Android 9.0
手机厂商 华为
手机机型 畅想8plus
页面类型 nvue
打包方式 云端
项目创建方式 HBuilderX

更多关于uni-app实现从首页点击按钮进入子窗体执行倒计时,再清空本地缓存跳转到登陆页面登陆后,再次点击按钮进入子窗体倒计时不生效的实战教程也可以访问 https://www.itying.com/category-93-b0.html

6 回复

跳转登陆有没操作关闭subNvue了窗体

更多关于uni-app实现从首页点击按钮进入子窗体执行倒计时,再清空本地缓存跳转到登陆页面登陆后,再次点击按钮进入子窗体倒计时不生效的实战教程也可以访问 https://www.itying.com/category-93-b0.html


解决了 我在nvue里面写了全局的执行倒计时的状态 我退出的时候没把状态改回去 然后倒计时方法没进入

那就不是bug了!

回复 xatao: 标题修改一下就行了吧

提供下示例

这个问题的根本原因是subNvue子窗体的生命周期管理不当导致的。当清空缓存并重新登录后,subNvue子窗体的实例没有被正确销毁和重建。

解决方案如下:

  1. 在退出登录清空缓存时,需要显式关闭subNvue子窗体:
// 清空缓存前先关闭子窗体
const subNVue = uni.getSubNVueById('yourSubNvueId');
subNVue && subNVue.close();
  1. 在首页的onShow生命周期中重新初始化subNvue:
onShow() {
  this.initSubNvue();
},
methods: {
  initSubNvue() {
    const subNVue = uni.getSubNVueById('yourSubNvueId');
    if(!subNVue) {
      // 重新创建subNvue实例
      uni.createSubNVue({
        id: 'yourSubNvueId',
        path: 'path/to/your/subNvue',
        // 其他配置参数
      });
    }
  }
}
  1. 确保倒计时逻辑在subNvue的onShow事件中重新执行:
// 在subNvue页面中
onShow() {
  this.startCountdown();
}
回到顶部