navigateTo方式,同一页面入栈2次,后退到第一次的页面,页面空白。
发布于 6 年前 作者 shina 5832 次浏览 来自 问答

同一页面入栈2次(或多次后),后退到第一次的页面,页面出现空白。

场景

通过 navigateTo 方式,从A1(id:1)页面进入B页面,再进入A2(id:2)页面,这时后退到B页面,再后退到A1页面就会出现页面白屏的现象。

发现

通过详细研究,在前进的时候,A1和A2页面始终共享的一个页面实例(存放数据),但是在页面栈中又是2个页面,

通过开发工具发现,在第一次A2后退的时候,A页面的实例(数据)就被卸载了,到了A1页面就无数据可显示了,页面出现空白。

尝试

1、在后退的时候,将页面栈中所有同一route的页面都清除,但是尝试失败,貌似无法操作,另外官方也不推荐操作页面栈。

2、在页面onShow的时候重新获取数据,但是测试发现,在后退到A1页面,页面会卡很久,才出现onShow方法的调用,而且参数还是A2页面的参数。

希望

官方能给一个解决方案,相信此问题不止我一个人遇到。

1 回复

麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)

回到顶部