我解决这一问题的方法是使用小程序的一个全局变量参数(skipPara)来控制。
原理是,当a页面被展示时(onShow),就对全局变量参数(skipPara)进行判断,如果全局变量参数(skipPara)的值为1,则对a页面进行刷新,其他情况不刷新。
全局变量设置:在app.js文件中设置全局变量skipPara:
App({
globalData: {
skipPara:0,//设置初始值为0,即其他页面跳转到该页面不刷新
},
然后在a页面获取这个全局变量,并对其值进行判断:
const app = getApp()
Page({
onShow: function () {
//使用app.globalData.skipPara来获取全局变量skipPara。
if (app.globalData.skipPara==1) {
this.onPullDownRefresh();//对skipPara的值进行判断,若值等于1则调用刷新函数。
app.globalData.skipPara=0;//在刷新之后重置skipPara的值,不然的话全局变量就变成了1,使所有页面跳转到a页面都会进行刷新
}
},
})
同时,还需要在b页面设置一个逻辑,就是当用户进入该页面并完成操作后想跳转到a页面时,将全局变量设置为1,使其完成跳转动作的同时对a页面进行刷新:
success: function (res) {
if (res.cancel) {
//点击取消
} else {
//点击确定
app.globalData.skipPara=1;//用户点击确定后将全局变量设置为1,并跳转
wx.switchTab({
url: '/pages/index/index',
})
}
},
至此,需求完成。