优化充值中心返回
This commit is contained in:
@@ -199,8 +199,79 @@ function toPwd() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function back() {
|
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 list = ref([]);
|
||||||
const sel = ref(0);
|
const sel = ref(0);
|
||||||
const money = ref(null);
|
const money = ref(null);
|
||||||
|
|||||||
Reference in New Issue
Block a user