微信小程序同一个页面压入历史栈两次,返回第二次页面没数据

微信小程序同一个页面压入历史栈两次,返回第二次页面没数据

问题描述

最近项目中遇到一个场景,页面A(A1) => B => A(A2), 然后返回时,先从页面返回时,从A2 => B => A1, A2 回退时,会触发 A2 的 onUnload(onUnload 事件中执行了一些数据重置为空的函数)事件,然后回退到 A1时,发现 A 页面的数据为空,A1 此时不会触发 onLoad(我们的页面数据赋值在 onLoad) 事件,会触发 onShow 事件。此时,会出现 A1 页面空白,数据为空。

解决方案

通过问题描述的分析,得到这种情况的原因是:
当历史栈里有两个 A(A1,A2)时,先从 A2 返回,会清空 A 页面的数据,而返回到 A1 时,没有触发 onLoad 事件重新赋值,所以造成 A1 页面数据空白。
以下是我们的解决方案:
我们的项目使用的是 mpvue,用 vuex 管理,在第一次进入 A1 时,onLoad 钩子里把值存到 vuex 中,这样即使再次进入会重新赋值,然后返回也不会影响数据为空。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值