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的渲染上下文没有正确重建。建议尝试以下解决方案:
- 在目标页面的onShow生命周期中重新初始化subNVue相关操作
- 改用uni.redirectTo代替reLaunch
- 在跳转前手动调用subNVue.hide()关闭子窗口
临时解决方案示例:
// 跳转前处理
beforeReLaunch() {
this.subNVue && this.subNVue.hide();
uni.reLaunch({url:'/pages/target'});
}
// 目标页面
onShow() {
this.initSubNVue(); // 重新初始化subNVue
}