小程序在使用过程中退出后,过了很久,重新进入后首页的数据还是用户最最初进入的数据
发布于 6 年前 作者 lxue 8219 次浏览 来自 问答

也就是说,小程序的首页数据没有刷新。注意:这个不是切换或者跳转到Tab时Tab页没刷新的问题,而是在小程序的使用过程中按返回键返回退出或者右上角按钮退出之后,隔了很久之后重新进入小程序首页,首页数据没更新。用户之前已经进行登录,数据在使用的过程中,首页的数据是更新了的,并把用户数据和登录状态存入了localstorage当中。按理说,小程序在再次进入的时候,是会读取localstorage中的数据进行更新的,实际上我也在页面的生命周期的onload和onshow的函数中做了相应读取的。虽然我也在下拉刷新事件中编写了读取更新的流程,但是要是没有在一进入小程序数据就更新的话用户可能不知道怎么回事,比如用户已经登录了,为什么页面还是这样,就有这样的疑惑。像首页的渲染我也是一开始就通过请求后台数据跟页面进行绑定输出的,问题就是:在使用的过程中,页面的数据是可以正常刷新的。但是一退出小程序,再次进入时,又是用户第一次进入小程序时的状态。不知道大家有没有遇到这个问题?求解…

如图   这是用户第一次进入小程序的时候

这是用户登录之后,首页内容进行了更新,登录状态和数据都存入localstorage中了,页面显示时也向后台发送请求更新数据了

3 回复

有可能是异步时序问题,对页面数据的更新需要在用户登录和数据获取成功之后(写在Success回调函数里面)。在onLoad和onShow里面直接读localstorage,次数可能网络请求还没执行成功

因为退出很久后,小程序就自动销毁页面栈了,所以进入之后第一个显示的页面还是首页,你需要在首页中进行判断,如果有缓存,就把缓存数据读出来,然后跳转到之前用户显示的页面。【页面的生命周期的onload和onshow的函数中做了相应读取的】如果你是在求助大厅这个页面的代码里写的,根本不会起作用,因为退出小程序很久之后,进入的第一个页面还是首页。建议在退出页面时把页面数据和页面标志存在localStorage里,比如在A页面退出就存wx.setStorage(‘page’,{pageUrl:‘…/A/A’, pageData: dataA}),然后在index.js里写,let page = wx.getStorage(‘page’), if(page) { wx.navigateTo( {

url:page.pageUrl } )  },这样就会跳转进退出时的页面了

我不是想故意气你哈,不过,说了一大堆,就是没听懂。。用户返回后台,重进,onShow肯定是会触发的。你检查下 onShow里的代码,是不是setData没做好

回到顶部