在做小程序开发时 ,登录成功后需要刷新根据登录成功返回的userid 去加载数据 render在index页面list里,但是小程序为了体验都是异步加载。
app.js 后第一个加载的就是index 页面。所以会导致index页面数据不能刷新问题。
我此处的方法是 登录成功后跳转tab 的list页面,即刷新一次 index重新加载获取数据。
但是小程序 跳转tab后不刷新。网上查询 如果tab之前已经打开, 再跳转到tab页是不走任何生命周期的。据说这是一个bug ,以后会解决。 目前的解决思路就是只能获取当前打开的所有页,再找到最后的那个页面即时当前显示的页面,跳转成功的那个页面。再调用onShow方法强制刷新!都是各位大神提供的为我们排忧解难,感谢!!
wx.switchTab({ url: '../index/index', success: function (res) { var page = getCurrentPages().pop(); if (page == undefined || page == null) return; page.onShow(); console.log('跳转到index页面成功')// success }, fail: function (res) { console.log('跳转到index页面失败') // fail }, complete: function (res) { console.log('跳转到index页面完成') // complete } })
另外还有个坑就是,页面跳转不能是 tabbar导航栏list里定义的path,否则
wx.navigateTo会无法跳转