同一页面入栈2次(或多次后),后退到第一次的页面,页面出现空白。
场景
通过 navigateTo 方式,从A1(id:1)页面进入B页面,再进入A2(id:2)页面,这时后退到B页面,再后退到A1页面就会出现页面白屏的现象。
发现
通过详细研究,在前进的时候,A1和A2页面始终共享的一个页面实例(存放数据),但是在页面栈中又是2个页面,
通过开发工具发现,在第一次A2后退的时候,A页面的实例(数据)就被卸载了,到了A1页面就无数据可显示了,页面出现空白。
尝试
1、在后退的时候,将页面栈中所有同一route的页面都清除,但是尝试失败,貌似无法操作,另外官方也不推荐操作页面栈。
2、在页面onShow的时候重新获取数据,但是测试发现,在后退到A1页面,页面会卡很久,才出现onShow方法的调用,而且参数还是A2页面的参数。
希望
官方能给一个解决方案,相信此问题不止我一个人遇到。
麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
在开发者工具 上 navigateTo 之后 再返回,控制台中的 AppData 一栏 下面会变成空白。
代码片段:https://developers.weixin.qq.com/s/DV9jt7mC7scZ
另外这个数据异常问题找到原因了,是使用的wepy框架的问题,原生的是正常的。