navigateTo方式,同一页面入栈2次,后退到第一次的页面,页面空白。
同一页面入栈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)