uniapp的uni.navigateBack返回上个页面如何刷新数据以及状态

我的需求是订单页面进入支付订单页面,支付成功以后返回到订单页面并刷新数据 以下是我的代码

支付页面代码

payData.success = (res) => {
	uni.showToast({
		title: '支付成功',
		success: () => {
			setTimeout(() => {
				uni.navigateBack();
			}, 2000)
		}
	})
}

订单页面我直接在onshow里面执行获取订单列表接口, 很遗憾数据是拿到了 但是没有刷新数据的状态

onShow() {
	console.log('1111111111')
	this.gettradelist()
}

下面是打印的数据可以看到是执行了onshow里的方法的
在这里插入图片描述
最后经过我无数次调整终于发现,只需要把原来的数据列表清空 再重新赋值就可以获取最新的数据状态了 嘿嘿嘿!

onShow() {
	this.orderList = []
	this.currentPage = 1
	this.gettradelist()
}

记住一定要在获取数据前清空哦!!!

uni.navigateBack()方法在uni-app中用于返回上一页面。然而,有时候在刷新当前页面后,使用该方法无法返回上一页面。这个问题可以通过以下几种方法解决。 一种解决方法是使用原生的history对象来替代uni.navigateBack()方法。可以封装一个兼容uni-app API和原生JS的返回方法,如下所示: ```javascript const navigateBack = (params) => { const pages = getCurrentPages() if (pages.length === 1) { if (typeof params === 'number') { history.go(-params) } else { history.back() } } else { uni.navigateBack() } } ``` 这个方法会先判断当前页面的数量,如果只有一个页面,则使用原生的history对象进行返回操作;如果有多个页面,则使用uni.navigateBack()方法进行返回操作。这样可以解决刷新页面后无法返回的问题。\[3\] 另一种解决方法是在返回的方法中进行替换。可以使用以下代码来判断是否可以返回上一页面,并进行相应的操作: ```javascript let canNavBack = getCurrentPages() if (canNavBack && canNavBack.length > 1) { uni.navigateBack() } else { history.back() } ``` 这段代码会先获取当前页面的数量,如果大于1,则使用uni.navigateBack()方法进行返回操作;如果等于1,则使用history.back()方法进行返回操作。这样也可以解决无法返回上一页面的问题。\[2\] 综上所述,以上两种方法都可以解决uni.navigateBack()无法返回上一页面的问题。你可以根据自己的需求选择其中一种方法来解决该问题。 #### 引用[.reference_title] - *1* [uni-app中使用uni.navigateBack()方法返回上一页面时,如果刷新当前页面则出现无法返回上一页面问题](https://blog.csdn.net/C_B_Y/article/details/125720619)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [uniapp刷新页面后使用uni.navigateBack()无法返回上个页面](https://blog.csdn.net/weixin_67434908/article/details/129204627)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [uniapp-H5页面刷新返回失效,页面栈清空问题,navigateBack失效问题](https://blog.csdn.net/qq_43205326/article/details/125159266)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值