微信小程序redirect 到tab不刷新

// 更新2018/11/20:现在小程序的页面栈长度为10

更正 2018/11/20:

经过一段时间的实践,我发现以前方法存在很多问题,比如 getCurrentPages 方法并不在官方的 API 列表中,route 属性是私有的,存在被废弃/替代的可能;又比如原来的代码掺杂了许多业务无关的逻辑,变得冗余,不易后期维护。

现在要实现原来的需求,我更推荐这样做:

onLoad() {
this.init()
} init() {
this.checkAuth()
.then(this.fetchData)
} checkAuth() {
// check authorization,return a Promise
} fetchData() {
// fetch api and render page
}

更正完毕

需求:

小程序需要判断用户是否登录,来显示不同的内容。当登录失效后需要重新登录并刷新页面,一般我们用 redirect 或者 switchTab 方法进行页面间的跳转,通过getCurrentPages() 拿到页面栈(数组,最多510个),最后一个就是当前页面的路径。

自然而然想到这样来刷新当前页:

const reload= () => {
let pages = getCurrentPages()
if (pages.length === 0) return let curPage = pages[pages.length - 1].__route__;
wx.redirectTo({
url: '/' + curPage
}) }

这段代码在小程序内页工作的很好,但一到tab页就GG思密达了——并!不!会!刷!新!

下面的方法可以解决:

const reload= () => {
let pages = getCurrentPages()
if (pages.length === 0) return let curPage = pages[pages.length - 1];
curPage.onShow();
}
上一篇:Java实现对文件的上传下载操作


下一篇:Windows "计划任务"功能设置闹钟~