w***@126.com
w***@126.com
  • 发布:2020-08-27 11:06
  • 更新:2022-04-12 15:50
  • 阅读:1487

【报Bug】subNVue原生子窗体同页面多次跳转异常——页面栈、遮罩层异常。

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 10.5.2

HBuilderX类型: 正式

HBuilderX版本号: 2.8.8

手机系统: 全部

手机厂商: 华为

页面类型: vue

打包方式: 云端

项目创建方式: HBuilderX

测试过的手机:

iphone8、华为mate20

操作步骤:

见项目示例

预期结果:

同页面多次跳转保持subNVue的唯一性

实际结果:

异常

bug描述:

页面A使用了subNVue做弹窗,在pages.json都配置好了,功能啥的一切正常。
这时候从页面A使用uni.navigateTo方法再次跳转到页面A,这时候的subNVue弹窗异常了——没有遮罩层、在subNVue中使用 uni.getCurrentSubNVue方法来获取当前的subNVue页面去试图关闭弹窗也失败了。

PS:此操作页面一直只有页面A,个人排查的可能原因是创建了多个同id的subNVue页面,同时在页面栈中顺序错误了。

2020-08-27 11:06 负责人:DCloud_uniAD_HDX 分享
已邀请:
小新的狗叫小白

小新的狗叫小白

两年了还没有解决...

  • 小新的狗叫小白

    const webView = this.$scope.$getAppWebview();

    const id = uni.getCurrentSubNVue().id

    const subNVue = webView.popupSubNVueWebviews[id]

    subNVue.hide('slide-out-bottom')


    这样可以正常关闭

    2022-04-12 16:15

  • j***@163.com

    回复 小新的狗叫小白: 关闭是可以关闭就是背景色时有时无

    2023-01-03 19:05

w***@126.com

w***@126.com (作者) - 前端小白菜

是我提的bug不是bug还是你们社区的人太忙了还是你们看心情挑bug解决的?提过那么多bug没一个给回复的。你们似乎在打击开发者的信心......

  • 1***@qq.com

    楼主解决了 吗?我也遇到这个问题了,页面打开多次sbuNVue 就无法关闭了。

    2020-10-09 23:48

w***@126.com

w***@126.com (作者) - 前端小白菜

同一个页面存在多个subNVue子窗体,再打开了两个子窗体之后,关闭其中一个子窗体,则遮罩层全部消失了。

  • liaol

    是啊,很头疼,遮罩有没有办法不消失

    2021-02-03 16:21

  • w***@126.com (作者)

    回复 liaol: 不使用subNvue自带的遮罩层,自己写。这就可以了。

    2021-02-04 18:09

w***@126.com

w***@126.com (作者) - 前端小白菜

这难道不算bug?

o***@126.com

o***@126.com

同样也碰上了

jimleel

jimleel

我暂时使用其他方法解决了:
1.页面跳转时使用uni.reLaunch

2.跳转之前做路由判断.(app端) currentPagePath为当前页面的路径

        let pages = getCurrentPages();  
        let page = pages[pages.length - 1];  
        // #ifdef APP-PLUS  
        let currentWebview = page.$getAppWebview();  
        let currentPagePath = currentWebview.__uniapp_route  
        // #endif

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