优化充值中心返回

This commit is contained in:
gyq
2026-01-22 13:40:43 +08:00
parent 9037e205a0
commit 94be2739af

View File

@@ -199,8 +199,79 @@ function toPwd() {
}
function back() {
uni.navigateBack();
safeNavigateBack();
}
/**
* 修复版:安全的页面返回方法
* 彻底避免 "cannot navigate back at first page" 报错
* @param {Number} delta 返回的页面数默认1
* @param {Function} fallback 失败时的降级处理函数
*/
function safeNavigateBack(delta = 1, fallback) {
// 1. 立即获取页面栈,确保拿到最新状态(关键修复点)
const pages = getCurrentPages();
// 2. 严谨判断:页面栈长度必须大于 delta 才能返回
const canNavigateBack = pages.length > delta;
console.log('页面栈信息:', {
pagesLength: pages.length,
delta: delta,
canNavigateBack: canNavigateBack
});
// 3. 如果不能返回,直接执行降级逻辑
if (!canNavigateBack) {
console.warn('当前是首页/页面栈不足无法返回');
handleFallback(fallback);
return; // 终止后续执行,彻底避免调用 navigateBack
}
// 4. 能返回时才执行 navigateBack
try {
uni.navigateBack({
delta: delta,
success: () => {
console.log('页面返回成功');
},
fail: (err) => {
console.error('navigateBack 执行失败:', err);
handleFallback(fallback);
}
});
} catch (error) {
console.error('页面返回异常:', error);
handleFallback(fallback);
}
}
/**
* 统一处理降级逻辑
* @param {Function} fallback 自定义降级函数
*/
function handleFallback(fallback) {
if (typeof fallback === 'function') {
fallback(); // 执行自定义降级
} else {
// 默认降级:返回首页(请替换为你的首页路径)
uni.showToast({
title: '已到首页无法返回',
icon: 'none',
duration: 1500
});
// 如果需要强制跳首页,解开下面注释(根据你的业务选择)
uni.switchTab({
url: '/pages/index/index',
fail: () => {
uni.redirectTo({
url: '/pages/index/index'
});
}
});
}
}
const list = ref([]);
const sel = ref(0);
const money = ref(null);