uniapp使用navigateBack返回上级页面后的事件处理

hanhan发布日期:2022-04-22


当你再当前页面使用navigateBack返回到上级页面后,上级页面的onShow函数就会被自动触发,你可以在onShow执行一些后置的业务逻辑。

当然,假如你只是想刷新页面的数据,使用vuex就可以实现了跨页面数据刷新了,也没必要在onShow里做特别的处理,因此,我这里建议涉及到多页面更新的场景尽量使用vuex实现。

但是假如涉及到非数据刷新问题,比如页面转跳,就需要在onShow函数里面做,可以这样实现,代码如下:



uni.setStorageSync("gotoUrlBack","cart");
uni.navigateBack({
	
   complete:function(){
	//在这里写逻辑没用			
    }
});

上级页面写如下的代码:



onShow(){
	
	let gotoUrl=uni.getStorageSync("gotoUrlBack");
	if(gotoUrl!=null&&gotoUrl!=undefined&&gotoUrl!==''){
		uni.removeStorageSync("gotoUrlBack");
		uni.redirectTo({
			url:gotoUrl
		});
	}
}



在线客服