uni-app subNVue 对象方法失效

uni-app subNVue 对象方法失效

开发环境 版本号 项目创建方式
Mac 14.6.1 HBuilderX

操作步骤:

打开一个有subNVue的页面,然后通过uni.navigateTo跳转至无subNVue的页面,再通过uni.reLaunch跳转回有subNVue的页面。

预期结果:

子窗口样式成功设置并显示

实际结果:

子窗口样式未设置并显示

bug描述:

页面栈有值的情况下使用uni.reLaunch跳转到存在subNVue的页面会导致 subNVue 对象方法失效,设置样式、显示、隐藏都正常执行,但是没有效果


更多关于uni-app subNVue 对象方法失效的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app subNVue 对象方法失效的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这是一个已知的uni-app subNVue在页面栈操作后的渲染问题。当使用reLaunch跳转回包含subNVue的页面时,虽然方法调用成功但实际渲染失效。

主要原因可能是reLaunch清空页面栈后,subNVue的渲染上下文没有正确重建。建议尝试以下解决方案:

  1. 在目标页面的onShow生命周期中重新初始化subNVue相关操作
  2. 改用uni.redirectTo代替reLaunch
  3. 在跳转前手动调用subNVue.hide()关闭子窗口

临时解决方案示例:

// 跳转前处理
beforeReLaunch() {
  this.subNVue && this.subNVue.hide();
  uni.reLaunch({url:'/pages/target'});
}

// 目标页面
onShow() {
  this.initSubNVue(); // 重新初始化subNVue
}
回到顶部