场景:
从list跳转到detail,在detail页面修改数据成功,返回到list,更新list。
难点:
uni.navigateBack 无法像 uni.navigateTo 那样直接传递参数,我们需要想想其他办法。
第一步:
在list页面定义接收函数,关键点,一定要defineExpose。
javascript
const getValue = (data) => {
console.log('接收到的参数:', data); // 输出: { id: 123 }
needUpdateId.value = data.id
}
// 必须要暴露,detail页面才能使用
defineExpose({
getValue
})
第二步:
在detail页面,比如修改成功后,传递数据。
javascript
const pages = getCurrentPages();
const prevPage = pages[pages.length - 2]; // 获取上一页实例
// 调用上一页的getValue方法并传参
if (prevPage.$vm && typeof prevPage.$vm.getValue === 'function') {
prevPage.$vm.getValue({
id: alarmData.value.id
});
}
// 返回上一页
uni.navigateBack({
delta: 1
})