![58caac56de5a217600eb53222f79970a.png](https://i-blog.csdnimg.cn/blog_migrate/b0d42731a7afb493ef0162b6c708fa78.jpeg)
在开发微信小程序中,我们经常会有一种需求,有A和B两个页面,从A页面打开B页面操作一顿后
A页面需要重新获取一些数据,好让在B返回里显示有变化;
比如一个登录操作,用户未登录时在A页面是不显示用户名称的,当用户进入B页面输入账号密码登录成功后,这时需要从B页面返回到A页面,又要让页面的用户信息显示出来;
很多人会用小程序生命周的onShow()来解决,其实这样是会有问题的,每次进页面的时候会多次发拉取用户信息的请求
例如:一进入页面onLoad获取一次用户信息,接着onShow又获取一次;
所以这时候可以通过小程序的getCurrentPages()来获取页面实例
然后在A页面中写一个专门用来重新获取数据的方法reInitData()通过getCurrentPages().length - 2)这个方法来调用
# A页面方法reInitData() { .....}# B页面执行let pages = getCurrentPages();const beforePage = pages[pages.length - 2];beforePage.reInitData();// 关闭当前页,返回上一页wx.navigateBack()