uniapp uni.navigateBack返回后刷新页面数据

方法1: 父页面设置钩子函数(onBackPress):

页面简介 | uni-app官网

适用于刷新多处数据, 但是目前小程序无法生效

onBackPress(options) {
    this.refreshData();
},
methods:{
    refreshData: function() {
        //加载数据
    },
},

方法2: 

返回加success回调

uni.navigateBack({
    delta: 1, //返回层数,2则上上页
    success() {
        uni.$emit('update',{msg:'页面更新'})
    },
})

需要刷新的页面设置:

mounted() {
	uni.$on('update', function(data) {
		//触发更新后
	})
},
//为了优化代码,可以加上移除事件,避免重复监听事件
onUnload() {
	// 移除监听事件  
	uni.$off('update');
},

方法3: 

uni.navigateBack({
    delta: 1, //返回层数,2则上上页
	success() {
	    if(isRefresh) {
		prePage.$vm.needRefresh = true  //设置刷新flag
	    }
    }
})

在返回后的页面中定义

data() {
    return {
		needRefresh: false,
	}
},
onShow() {
	if(this.needRefresh) {
		//刷新逻辑
		this.needRefresh = false;
	}
},

猜你喜欢

转载自blog.csdn.net/weixin_44805839/article/details/134583294