说明
A页面调用 uni.navigateTo 显示 B页面
B页面调用 uni.navigateBack 后退到A页面,并让A页面重写加载数据
应用场景
点击按钮时后退并刷新
不适合场景
- Android侧滑后退
- Android 实体返回键
- IOS 左滑后退
- 顶部导航栏左边的返回按钮
原理
在 B 页面,navigateBack成功回调函数中,发射自定义事件
在 A 页面,navigateTo 中增加监听该自定义事件,监听到该事件,就刷新数据
A页面
uni.navigateTo({
url: 'note/list?tid='+tid,
events: {
// 监听 navReloadEvent自定义 事件
navReloadEvent:(data) => {
// console.log("navReloadEvent:",data)
this.isPullDownRefresh = true
// 调用下拉刷新
uni.startPullDownRefresh();
this.getNotes()
}
}
});
B页面
uni.navigateBack({
delta: 1,
success: () => {
const eventChannel = this.getOpenerEventChannel();
// 发射 navReloadEvent 自定义时间,可传递数据
eventChannel.emit('navReloadEvent',1);
}
});