优化充值中心返回
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user