考虑到触发刷新的地方很多,如果把每一个的上下文都传进来,调用上下文的onLoad方法,太过复杂,如果是组件层层嵌套那就没法玩了。
最后思路其实很简单就是把最后的一个路由拿出来,重新加载一遍。
// 全局可用
function reloadThisPage() {
let currentPages = getCurrentPages()
let lastRoute = currentPages[currentPages.length - 1].route
let options = currentPages[currentPages.length - 1].options
let optionsStr = ""
for (let key in options) {
optionsStr += '?' + key + '=' + options[key]
}
wx.redirectTo({
url: '/' + lastRoute + optionsStr,
})
}