首页 小程序 微信小程序实现页面强制刷新

微信小程序实现页面强制刷新

参考链接

一、如何刷新当前页面

1. 直接调用this.onLoad()

使用这个方法的时候,在第一次进入页面时保存onLoad()的参数options为_options。然后当你处理完其它事务要想要刷新页面的时候就可以直接调用this.onLoad(this._options)

但是这个方法有一个缺点就是当你在onLoad() 函数里面有监听其它页面传过来的数据的时候,这个方法就不适用了。如下面这种情况

async onLoad(options) {    console.log(options);    const eventChannel = this.getOpenerEventChannel();    //监听从商店页面传过来的商品数据    eventChannel.on('shopPage', (data) => {      const { commodity } = data;      this.setData({        commodity      })    })      },123456789101112

2. 创建一个特定的函数做数据更新

有时候只是某部分数据需要更新的时候,不需要调用onLoad() 函数,可以写一个特定的更新函数,这样就不会有直接调用onload的问题,还能提高速度。

二、如何返回上一个页面的时候刷新上一个页面的数据

1. 使用onShow() 函数

我们知道页面的生命周期中onShow()函数是每次页面显示都会调用的,当我们返回这个页面意味着页面从后台调到了前台,就会触发onShow()函数。所以只要将需要获取数据的方法放在onShow()函数里面就可以了

onShow() { //返回显示页面状态函数	//错误处理	this.onLoad()//再次加载,实现返回上一页页面刷新	//正确方法	this.fetchSomething() //只执行获取特定数据的方法,来进行局部刷新	}1234567

2. 在当前页面获取上一个页面,然后调用上一个页面的更新函数

但是onShow() 函数每次页面显示的时候都会执行,如果我们只想特定的时候执行怎么办?下面的方法可以解决。

只要在本页面处理完数据后,获取上一个页面的对象,然后执行上一个页面的特定的数据更新函数就可以。

let pages = getCurrentPages()let prePages = pages[pages.length - 2]  //获取上一个页面的对象prePages.fetchSomething(); //调用上一个页面里的更新函数123
特别声明:本站部分内容收集于互联网是出于更直观传递信息的目的。该内容版权归原作者所有,并不代表本站赞同其观点和对其真实性负责。如该内容涉及任何第三方合法权利,请及时与824310991@qq.com联系,我们会及时反馈并处理完毕。